home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile_to_jvm12.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  73.1 KB  |  2,330 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9. /*No:RUN_FEATURE_6.arguments*/
  10. /*No:RUN_FEATURE_6.ucs_true*/
  11. void r868routine_mapping_jvm(T868* C){
  12. int _stack_level=0;
  13. int _idx=0;
  14. T0* _ct=NULL;
  15. T0* _rt=NULL;
  16. _ct=(((T868*)C))->_current_type/*4*/;
  17. r228push_target_as_target(((T228*)(oBC364jvm)));
  18. _stack_level=-((1)+(r228push_arguments(((T228*)(oBC364jvm)))));
  19. _rt=(((T868*)C))->_result_type/*24*/;
  20. /*IF*/if ((_rt)!=((void*)(NULL))) {
  21. _stack_level=(_stack_level)+(X291jvm_stack_space(_rt));
  22. }
  23. /*FI*/_idx=r95idx_methodref(((T95*)(oBC364constant_pool)),(T0*)C);
  24. r355jvm_invoke(((T355*)(X291run_class(_ct))),_idx,_stack_level);
  25. }
  26. /*No:RUN_FEATURE_6.actuals_clients*/
  27. T0* r868jvm_descriptor(T868* C){
  28. T0* R=NULL;
  29. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496tmp_jvm_descriptor)))))->_count)=(0);
  30. /*]*/
  31. /*[IRF3.4update_tmp_jvm_descriptor*/r868routine_update_tmp_jvm_descriptor(C);
  32. /*]*/
  33. R=oBC496tmp_jvm_descriptor;
  34. return R;
  35. }
  36. T0*oBC364method_info=NULL;
  37. void r868method_info_start(T868* C){
  38. int _flags=0;
  39. _flags=X291jvm_method_flags((((T868*)C))->_current_type/*4*/);
  40. r506start(((T506*)(oBC364method_info)),_flags,X776to_key((((T868*)C))->_name/*16*/),r868jvm_descriptor(C));
  41. }
  42. /*No:RUN_FEATURE_6.ucs_in_computation*/
  43. void r868routine_update_tmp_jvm_descriptor(T868* C){
  44. T0* _rt=NULL;
  45. T0* _ct=NULL;
  46. r7extend(((T7*)(oBC496tmp_jvm_descriptor)),'\50');
  47. _ct=(((T868*)C))->_current_type/*4*/;
  48. X291jvm_target_descriptor_in(_ct,oBC496tmp_jvm_descriptor);
  49. /*IF*/if (((((T868*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  50. r31jvm_descriptor_in(((T31*)((((T868*)C))->_arguments/*20*/)),oBC496tmp_jvm_descriptor);
  51. }
  52. /*FI*/_rt=(((T868*)C))->_result_type/*24*/;
  53. /*IF*/if ((_rt)==((void*)(NULL))) {
  54. r7append(((T7*)(oBC496tmp_jvm_descriptor)),((T0*)ms153_470));
  55. }
  56. else {
  57. _rt=X291run_type(_rt);
  58. r7extend(((T7*)(oBC496tmp_jvm_descriptor)),'\51');
  59. X291jvm_descriptor_in(_rt,oBC496tmp_jvm_descriptor);
  60. }
  61. /*FI*/}
  62. void r868make(T868* C,T0* a1,T0* a2,T0* a3){
  63. C->_current_type=a1;
  64. C->_name=a2;
  65. C->_base_feature=a3;
  66. r199put(((T199*)((((T355*)((T355*)(r868run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  67. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  68. C->_use_current_state=1005;
  69. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  70. r868initialize(C);
  71. r604pop(((T604*)(oBC364small_eiffel)));
  72. }
  73. void r868std_compute_use_current(T868* C){
  74. /*IF*/if (((((T868*)C))->_use_current_state/*40*/)==(1006)) {
  75. /*IF*/if (((((T868*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  76. /*IF*/if (r567use_current(((T567*)((((T868*)C))->_require_assertion/*28*/)))) {
  77. C->_use_current_state=1004;
  78. }
  79. /*FI*/}
  80. /*FI*/}
  81. /*FI*//*IF*/if (((((T868*)C))->_use_current_state/*40*/)==(1006)) {
  82. /*IF*/if (((((T868*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  83. /*IF*/if (r592use_current(((T592*)((((T868*)C))->_routine_body/*32*/)))) {
  84. C->_use_current_state=1004;
  85. }
  86. /*FI*/}
  87. /*FI*/}
  88. /*FI*//*IF*/if (((((T868*)C))->_use_current_state/*40*/)==(1006)) {
  89. /*IF*/if (((((T868*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  90. /*IF*/if (r633use_current(((T633*)((((T868*)C))->_ensure_assertion/*36*/)))) {
  91. C->_use_current_state=1004;
  92. }
  93. /*FI*/}
  94. /*FI*/}
  95. /*FI*//*IF*/if (((((T868*)C))->_use_current_state/*40*/)==(1006)) {
  96. C->_use_current_state=1003;
  97. }
  98. /*FI*/}
  99. /*No:RUN_FEATURE_6.name*/
  100. int r868arg_count(T868* C){
  101. int R=0;
  102. /*IF*/if (((((T868*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  103. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T868*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  104. }
  105. /*FI*/return R;
  106. }
  107. void r868routine_afd_check(T868* C){
  108. /*IF*/if (((((T868*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  109. r567afd_check(((T567*)((((T868*)C))->_require_assertion/*28*/)));
  110. }
  111. /*FI*//*IF*/if (((((T868*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  112. r592afd_check(((T592*)((((T868*)C))->_routine_body/*32*/)));
  113. }
  114. /*FI*//*IF*/if (((((T868*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  115. r633afd_check(((T633*)((((T868*)C))->_ensure_assertion/*36*/)));
  116. }
  117. /*FI*/}
  118. /*No:RUN_FEATURE_6.local_vars*/
  119. /*No:RUN_FEATURE_6.base_feature*/
  120. /*No:RUN_FEATURE_6.start_position*/
  121. T0*oBC496tmp_jvm_descriptor=NULL;
  122. /*No:RUN_FEATURE_6.us_std_output*/
  123. int r868jvm_max_locals(T868* C){
  124. int R=0;
  125. R=X291jvm_stack_space((((T868*)C))->_current_type/*4*/);
  126. /*IF*/if (((((T868*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  127. R=(R)+(r31jvm_stack_space(((T31*)((((T868*)C))->_arguments/*20*/))));
  128. }
  129. /*FI*//*IF*/if (((((T868*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  130. R=(R)+(r620jvm_stack_space(((T620*)((((T868*)C))->_local_vars/*48*/))));
  131. }
  132. /*FI*//*IF*/if (((((T868*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  133. R=(R)+(X291jvm_stack_space((((T868*)C))->_result_type/*24*/));
  134. }
  135. /*FI*/return R;
  136. }
  137. int r868jvm_result_offset(T868* C){
  138. int R=0;
  139. R=X291jvm_stack_space((((T868*)C))->_current_type/*4*/);
  140. /*IF*/if (((((T868*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  141. R=(R)+(r31jvm_stack_space(((T31*)((((T868*)C))->_arguments/*20*/))));
  142. }
  143. /*FI*//*IF*/if (((((T868*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  144. R=(R)+(r620jvm_stack_space(((T620*)((((T868*)C))->_local_vars/*48*/))));
  145. }
  146. /*FI*/return R;
  147. }
  148. /*No:RUN_FEATURE_6.ensure_assertion*/
  149. int r868is_exported_in(T868* C,T0* a1){
  150. int R=0;
  151. R=r636gives_permission_to(((T636*)(r868clients(C))),a1);
  152. return R;
  153. }
  154. void r868jvm_define_opening(T868* C){
  155. T0* _t=NULL;
  156. /*IF*/if (((((T868*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  157. _t=X291run_type((((T868*)C))->_result_type/*24*/);
  158. X291jvm_initialize_local(_t,r868jvm_result_offset(C));
  159. }
  160. /*FI*//*IF*/if (((((T868*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  161. r620jvm_initialize(((T620*)((((T868*)C))->_local_vars/*48*/)));
  162. }
  163. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  164. /*IF*/if (((((T868*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  165. r633compile_to_jvm_old(((T633*)((((T868*)C))->_ensure_assertion/*36*/)));
  166. }
  167. /*FI*/}
  168. /*FI*//*IF*/if (((((T868*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  169. r567compile_to_jvm(((T567*)((((T868*)C))->_require_assertion/*28*/)));
  170. }
  171. /*FI*/}
  172. /*No:RUN_FEATURE_6.compute_use_current*/
  173. /*No:RUN_FEATURE_6.result_type*/
  174. /*No:RUN_FEATURE_6.jvm_field_or_method*/
  175. int r868jvm_argument_offset(T868* C,T0* a1){
  176. int R=0;
  177. R=X291jvm_stack_space((((T868*)C))->_current_type/*4*/);
  178. R=(R)+(r31jvm_offset_of(((T31*)((((T868*)C))->_arguments/*20*/)),a1));
  179. return R;
  180. }
  181. /*No:RUN_FEATURE_6.us_std_error*/
  182. /*No:RUN_FEATURE_6.is_static*/
  183. T0*oBC364once_routine_pool=NULL;
  184. void r868add_client(T868* C,T0* a1){
  185. int _i=0;
  186. /*IF*/if (((((T868*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  187. {T187*n=malloc(sizeof(*n));
  188. *n=M187;
  189. r187with_capacity(n,4);
  190. C->_actuals_clients=(T0*)n;
  191. }
  192. r187add_last(((T187*)((((T868*)C))->_actuals_clients/*12*/)),a1);
  193. }
  194. else {
  195. _i=r187fast_index_of(((T187*)((((T868*)C))->_actuals_clients/*12*/)),a1);
  196. /*IF*/if ((_i)>((((T187*)((T187*)((((T868*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  197. r187add_last(((T187*)((((T868*)C))->_actuals_clients/*12*/)),a1);
  198. }
  199. /*FI*/}
  200. /*FI*/r355add_client(((T355*)(r868run_class(C))),a1);
  201. }
  202. T0*oBC364constant_pool=NULL;
  203. /*No:RUN_FEATURE_6.require_assertion*/
  204. /*No:RUN_FEATURE_6.use_current_state*/
  205. int r868can_be_dropped(T868* C){
  206. int R=0;
  207. /*IF*/if (r868is_pre_computable(C)) {
  208. R=1;
  209. }
  210. /*FI*/return R;
  211. }
  212. void r868jvm_define_closing(T868* C){
  213. /*IF*/if (r868use_current(C)) {
  214. }
  215. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  216. /*IF*/if (((((T868*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  217. r633compile_to_jvm(((T633*)((((T868*)C))->_ensure_assertion/*36*/)),1);
  218. }
  219. /*FI*/}
  220. /*FI*//*IF*/if (((((T868*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  221. X291jvm_push_local((((T868*)C))->_result_type/*24*/,r868jvm_result_offset(C));
  222. }
  223. /*FI*/}
  224. /*No:RUN_FEATURE_6.mapping_jvm*/
  225. /*No:RUN_FEATURE_6.current_type*/
  226. T0* r868run_class(T868* C){
  227. T0* R=NULL;
  228. R=X291run_class((((T868*)C))->_current_type/*4*/);
  229. return R;
  230. }
  231. /*No:RUN_FEATURE_6.static_value_mem*/
  232. /*No:RUN_FEATURE_6.fz_19*/
  233. /*No:RUN_FEATURE_6.ucs_not_computed*/
  234. void r868fall_down(T868* C){
  235. T0* _rf=NULL;
  236. T0* _sub_name=NULL;
  237. T0* _sub_bc=NULL;
  238. T0* _current_bc=NULL;
  239. T0* _sub_rc=NULL;
  240. T0* _current_rc=NULL;
  241. int _i=0;
  242. T0* _running=NULL;
  243. _current_rc=X291run_class((((T868*)C))->_current_type/*4*/);
  244. _running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
  245. /*IF*/if ((_running)!=((void*)(NULL))) {
  246. _current_bc=X291base_class((((T868*)C))->_current_type/*4*/);
  247. _i=(((T396*)((T396*)_running)))->_lower/*12*/;
  248. while (!((_i)>((((T396*)((T396*)_running)))->_upper/*8*/))) {
  249. _sub_rc=r396item(((T396*)_running),_i);
  250. /*IF*/if ((_sub_rc)!=((void*)(_current_rc))) {
  251. _sub_bc=X291base_class((((T355*)((T355*)_sub_rc)))->_current_type/*0*/);
  252. _sub_name=r605new_name_of(((T605*)_sub_bc),_current_bc,(((T868*)C))->_name/*16*/);
  253. _rf=r355get_feature(((T355*)_sub_rc),_sub_name);
  254. }
  255. /*FI*/_i=(_i)+(1);
  256. }
  257. }
  258. /*FI*/}
  259. /*No:RUN_FEATURE_6.routine_body*/
  260. /*No:RUN_FEATURE_6.us_io*/
  261. /*No:RUN_FEATURE_6.ucs_false*/
  262. int r868is_pre_computable(T868* C){
  263. int R=0;
  264. /*IF*/if (r52fast_has(((T52*)(oBC868frozen_general)),X776to_string((((T868*)C))->_name/*16*/))) {
  265. R=1;
  266. }
  267.  else if ((((((T868*)C))->_arguments/*20*/)==((void*)(NULL)))&&(!(r868use_current(C)))) {
  268. /*IF*/if (((((T868*)C))->_routine_body/*32*/)==((void*)(NULL))) {
  269. R=1;
  270. }
  271.  else if (!(r590invariant_check(((T590*)(oBC364run_control))))) {
  272. R=r592is_pre_computable(((T592*)((((T868*)C))->_routine_body/*32*/)));
  273. }
  274. /*FI*/}
  275. /*FI*/return R;
  276. }
  277. T0* r868clients(T868* C){
  278. T0* R=NULL;
  279. T0* _bfbc=NULL;
  280. T0* _bc=NULL;
  281. /*IF*/if (((((T868*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  282. _bc=X291base_class((((T868*)C))->_current_type/*4*/);
  283. _bfbc=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_base_class/*4*/;
  284. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  285. R=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_clients/*24*/;
  286. }
  287. else {
  288. R=r605clients_for(((T605*)_bc),(((T868*)C))->_name/*16*/);
  289. }
  290. /*FI*/C->_clients_memory=R;
  291. }
  292. else {
  293. R=(((T868*)C))->_clients_memory/*8*/;
  294. }
  295. /*FI*/return R;
  296. }
  297. int r868use_current(T868* C){
  298. int R=0;
  299. {int z1=(((T868*)C))->_use_current_state/*40*/;
  300.  
  301. if((1004==z1)){
  302. R=1;
  303. }
  304.  else 
  305. if((1003==z1)){
  306. }
  307.  else 
  308. if((1005==z1)){
  309. C->_use_current_state=1006;
  310. /*[IRF3.4compute_use_current*/r868std_compute_use_current(C);
  311. /*]*/
  312. R=r868use_current(C);
  313. }
  314.  else {R=1;
  315. }}
  316. return R;
  317. }
  318. void r868jvm_define(T868* C){
  319. int _idx_result=0;
  320. int _idx_flag=0;
  321. int _branch=0;
  322. int _result_space=0;
  323. _idx_result=r916idx_fieldref_for_result((T0*)C);
  324. _idx_flag=r916idx_fieldref_for_flag((T0*)C);
  325. _result_space=X291jvm_stack_space((((T868*)C))->_result_type/*24*/);
  326. r868method_info_start(C);
  327. r256opcode_getstatic(((T256*)(oBC364code_attribute)),_idx_flag,1);
  328. _branch=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  329. /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)(oBC364code_attribute)),4,1);
  330. /*]*/
  331. r256opcode_putstatic(((T256*)(oBC364code_attribute)),_idx_flag,-(1));
  332. r868jvm_define_opening(C);
  333. /*IF*/if (((((T868*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  334. r592compile_to_jvm(((T592*)((((T868*)C))->_routine_body/*32*/)));
  335. }
  336. /*FI*/r868jvm_define_closing(C);
  337. r256opcode_putstatic(((T256*)(oBC364code_attribute)),_idx_result,-(_result_space));
  338. r256resolve_u2_branch(_branch);
  339. r256opcode_getstatic(((T256*)(oBC364code_attribute)),_idx_result,_result_space);
  340. X291jvm_return_code(X291run_type((((T868*)C))->_result_type/*24*/));
  341. r506finish(((T506*)(oBC364method_info)));
  342. }
  343. int r868jvm_local_variable_offset(T868* C,T0* a1){
  344. int R=0;
  345. R=X291jvm_stack_space((((T868*)C))->_current_type/*4*/);
  346. /*IF*/if (((((T868*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  347. R=(R)+(r31jvm_stack_space(((T31*)((((T868*)C))->_arguments/*20*/))));
  348. }
  349. /*FI*/R=(R)+(r620jvm_offset_of(((T620*)((((T868*)C))->_local_vars/*48*/)),a1));
  350. return R;
  351. }
  352. /*No:RUN_FEATURE_6.fatal_error*/
  353. /*No:RUN_FEATURE_6.clients_memory*/
  354. void r868initialize(T868* C){
  355. C->_arguments=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_arguments/*28*/;
  356. /*IF*/if ((((((T868*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T868*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
  357. C->_arguments=r31to_runnable(((T31*)((((T868*)C))->_arguments/*20*/)),(((T868*)C))->_current_type/*4*/);
  358. }
  359. /*FI*/C->_result_type=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_result_type/*12*/;
  360. /*IF*/if (X291is_anchored((((T868*)C))->_result_type/*24*/)) {
  361. r683add_position(X291start_position((((T868*)C))->_result_type/*24*/));
  362. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms7_868);
  363. r683fatal_error(((T683*)(oBC364eh)),b1);
  364. }/*]*/
  365. }
  366.  else if (X291is_formal_generic((((T868*)C))->_result_type/*24*/)) {
  367. r683add_position(X291start_position((((T868*)C))->_result_type/*24*/));
  368. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_868);
  369. r683fatal_error(((T683*)(oBC364eh)),b1);
  370. }/*]*/
  371. }
  372. /*FI*/C->_result_type=X291to_runnable((((T868*)C))->_result_type/*24*/,(((T868*)C))->_current_type/*4*/);
  373. C->_local_vars=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_local_vars/*20*/;
  374. /*IF*/if ((((((T868*)C))->_local_vars/*48*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T733*)((T733*)((((T620*)((T620*)((((T868*)C))->_local_vars/*48*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
  375. C->_local_vars=r620to_runnable(((T620*)((((T868*)C))->_local_vars/*48*/)),(((T868*)C))->_current_type/*4*/);
  376. }
  377. /*FI*/C->_routine_body=(((T844*)((T844*)((((T868*)C))->_base_feature/*44*/))))->_routine_body/*52*/;
  378. /*IF*/if (((((T868*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  379. C->_routine_body=r592to_runnable(((T592*)((((T868*)C))->_routine_body/*32*/)),(((T868*)C))->_current_type/*4*/);
  380. }
  381. /*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  382. C->_require_assertion=r844run_require((T0*)C);
  383. }
  384. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  385. C->_ensure_assertion=r844run_ensure((T0*)C);
  386. }
  387. /*FI*/r916add_function((T0*)C);
  388. }
  389. T0*oBC868frozen_general=NULL;
  390. /*No:RUN_FEATURE_6.us_std_input*/
  391. /*No:RUN_FEATURE_6.afd_check*/
  392. /*No:RUN_FEATURE_6.update_tmp_jvm_descriptor*/
  393. int r916idx_name_for_flag(T0* a1){
  394. int R=0;
  395. r916prepare_flag(a1);
  396. R=r95idx_uft8(((T95*)(oBC364constant_pool)),oBC916flag_string);
  397. return R;
  398. }
  399. void r916add_function(T0* a1){
  400. r222add_last(((T222*)(oBC916function_list)),a1);
  401. }
  402. int r916idx_descriptor(T0* a1){
  403. int R=0;
  404. r916prepare_descriptor(a1);
  405. R=r95idx_uft8(((T95*)(oBC364constant_pool)),oBC916descriptor_string);
  406. return R;
  407. }
  408. T0*oBC916result_string=NULL;
  409. /*No:ONCE_ROUTINE_POOL.fields_count*/
  410. int fBC364jvm_root_class=0;
  411. T0*oBC364jvm_root_class=NULL;
  412. T0* r916jvm_root_class(void){
  413. if (fBC364jvm_root_class==0){
  414. T0* R=NULL;
  415. fBC364jvm_root_class=1;
  416. {T7*n=malloc(sizeof(*n));
  417. *n=M7;
  418. r7make(n,12);
  419. R=(T0*)n;
  420. }
  421. r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
  422. r7extend(((T7*)R),'\57');
  423. r7append(((T7*)R),((T0*)ms112_470));
  424. oBC364jvm_root_class=R;}
  425. return oBC364jvm_root_class;}
  426. int r916idx_fieldref_for_result(T0* a1){
  427. int R=0;
  428. r916prepare_result((((T868*)((T868*)a1)))->_base_feature/*44*/);
  429. r916prepare_descriptor(X291run_type((((T868*)((T868*)a1)))->_result_type/*24*/));
  430. R=r95idx_fieldref3(((T95*)(oBC364constant_pool)),r916jvm_root_class(),oBC916result_string,oBC916descriptor_string);
  431. return R;
  432. }
  433. void r916prepare_result(T0* a1){
  434. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC916result_string)))))->_count)=(0);
  435. /*]*/
  436. r7extend(((T7*)(oBC916result_string)),'r');
  437. r2append_in((((T605*)((T605*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_base_class/*4*/)))))->_id/*0*/,oBC916result_string);
  438. r7append(((T7*)(oBC916result_string)),X776to_key(/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)a1)))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/)));
  439. }
  440. int r916idx_name_for_result(T0* a1){
  441. int R=0;
  442. r916prepare_result(a1);
  443. R=r95idx_uft8(((T95*)(oBC364constant_pool)),oBC916result_string);
  444. return R;
  445. }
  446. void r916prepare_descriptor(T0* a1){
  447. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC916descriptor_string)))))->_count)=(0);
  448. /*]*/
  449. /*IF*/if (X291is_reference(a1)) {
  450. r7append(((T7*)(oBC916descriptor_string)),r916jvm_root_descriptor());
  451. }
  452. else {
  453. X291jvm_descriptor_in(a1,oBC916descriptor_string);
  454. }
  455. /*FI*/}
  456. int r916idx_fieldref_for_flag(T0* a1){
  457. int R=0;
  458. r916prepare_flag(X496base_feature(a1));
  459. R=r95idx_fieldref3(((T95*)(oBC364constant_pool)),r916jvm_root_class(),oBC916flag_string,((T0*)ms173_470));
  460. return R;
  461. }
  462. T0*oBC364field_info=NULL;
  463. /*No:ONCE_ROUTINE_POOL.fz_41*/
  464. /*No:ONCE_ROUTINE_POOL.jvm_initialize_fields*/
  465. T0*oBC916descriptor_string=NULL;
  466. int fBC364jvm_root_descriptor=0;
  467. T0*oBC364jvm_root_descriptor=NULL;
  468. T0* r916jvm_root_descriptor(void){
  469. if (fBC364jvm_root_descriptor==0){
  470. T0* R=NULL;
  471. fBC364jvm_root_descriptor=1;
  472. {T7*n=malloc(sizeof(*n));
  473. *n=M7;
  474. r7make(n,12);
  475. R=(T0*)n;
  476. }
  477. r7extend(((T7*)R),'L');
  478. r7append(((T7*)R),r916jvm_root_class());
  479. r7extend(((T7*)R),'\73');
  480. oBC364jvm_root_descriptor=R;}
  481. return oBC364jvm_root_descriptor;}
  482. T0*oBC916function_list=NULL;
  483. void r916jvm_define_fields(T916* C){
  484. T0* _name_list=NULL;
  485. T0* _bf=NULL;
  486. T0* _rf6=NULL;
  487. T0* _rf5=NULL;
  488. int _i=0;
  489. int _idx_flag=0;
  490. int _byte_idx=0;
  491. {T226*n=malloc(sizeof(*n));
  492. *n=M226;
  493. r226with_capacity(n,(((T916*)C))->_fields_count/*0*/);
  494. _name_list=(T0*)n;
  495. }
  496. /*IF*/if ((/*(IRF4.6count*/((((T222*)((T222*)(oBC916function_list))))->_upper/*12*/)+(1)/*)*/)>(0)) {
  497. _i=(((T222*)((T222*)(oBC916function_list))))->_upper/*12*/;
  498. _byte_idx=r95idx_uft8(((T95*)(oBC364constant_pool)),((T0*)ms173_470));
  499. while (!((_i)<(0))) {
  500. _rf6=/*(IRF4.6item*/((((T222*)((T222*)(oBC916function_list))))->_storage/*4*/)[_i]/*)*/;
  501. _bf=(((T868*)((T868*)_rf6)))->_base_feature/*44*/;
  502. _idx_flag=r916idx_name_for_flag(_bf);
  503. /*IF*/if (r226fast_has(((T226*)_name_list),_idx_flag)) {
  504. }
  505. else {
  506. r226add_last(((T226*)_name_list),_idx_flag);
  507. r543add(((T543*)(oBC364field_info)),9,_idx_flag,_byte_idx);
  508. r543add(((T543*)(oBC364field_info)),9,r916idx_name_for_result(_bf),r916idx_descriptor(X291run_type((((T868*)((T868*)_rf6)))->_result_type/*24*/)));
  509. }
  510. /*FI*/_i=(_i)-(1);
  511. }
  512. }
  513. /*FI*//*IF*/if ((/*(IRF4.6count*/((((T185*)((T185*)(oBC916procedure_list))))->_upper/*12*/)+(1)/*)*/)>(0)) {
  514. _i=(((T185*)((T185*)(oBC916procedure_list))))->_upper/*12*/;
  515. _byte_idx=r95idx_uft8(((T95*)(oBC364constant_pool)),((T0*)ms173_470));
  516. while (!((_i)<(0))) {
  517. _rf5=/*(IRF4.6item*/((((T185*)((T185*)(oBC916procedure_list))))->_storage/*4*/)[_i]/*)*/;
  518. _bf=(((T869*)((T869*)_rf5)))->_base_feature/*44*/;
  519. _idx_flag=r916idx_name_for_flag(_bf);
  520. /*IF*/if (r226fast_has(((T226*)_name_list),_idx_flag)) {
  521. }
  522. else {
  523. r226add_last(((T226*)_name_list),_idx_flag);
  524. r543add(((T543*)(oBC364field_info)),9,_idx_flag,_byte_idx);
  525. }
  526. /*FI*/_i=(_i)-(1);
  527. }
  528. }
  529. /*FI*/}
  530. /*No:ONCE_ROUTINE_POOL.fz_jvm_root*/
  531. void r916prepare_flag(T0* a1){
  532. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC916flag_string)))))->_count)=(0);
  533. /*]*/
  534. r7extend(((T7*)(oBC916flag_string)),'f');
  535. r2append_in((((T605*)((T605*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_base_class/*4*/)))))->_id/*0*/,oBC916flag_string);
  536. r7append(((T7*)(oBC916flag_string)),X776to_key(/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)a1)))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/)));
  537. }
  538. T0*oBC916flag_list=NULL;
  539. T0*oBC916flag_string=NULL;
  540. void r916add_procedure(T0* a1){
  541. r185add_last(((T185*)(oBC916procedure_list)),a1);
  542. }
  543. T0*oBC916procedure_list=NULL;
  544. /*No:CST_ATT_STRING.arguments*/
  545. T0* r380try_to_undefine(T380* C,T0* a1,T0* a2){
  546. T0* R=NULL;
  547. X776undefine_in(a1,a2);
  548. R=r380try_to_undefine_aux(C,a1,a2);
  549. /*IF*/if ((R)!=((void*)(NULL))) {
  550. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T380*)C))->_clients/*20*/);
  551. /*]*/
  552. }
  553. else {
  554. r605fatal_undefine(((T605*)a2),a1);
  555. }
  556. /*FI*/return R;
  557. }
  558. /*No:CST_ATT_STRING.is_deferred*/
  559. void r380add_into(T380* C,T0* a1){
  560. T0* _fn=NULL;
  561. int _i=0;
  562. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  563. _i=1;
  564. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  565. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  566. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  567. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  568. r683add_position(X776start_position(_fn));
  569. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  570. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  571. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  572. r7append(((T7*)(oBC683explanation)),b1);
  573. }/*]*/
  574. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  575. }
  576. else {
  577. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  578. }
  579. /*FI*/_i=(_i)+(1);
  580. }
  581. }
  582. T0* r380try_to_undefine_aux(T380* C,T0* a1,T0* a2){
  583. T0* R=NULL;
  584. r683add_position(r380start_position(C));
  585. r380error(X776start_position(a1),((T0*)ms1_321));
  586. r605fatal_undefine(((T605*)a2),a1);
  587. return R;
  588. }
  589. void r380make(T380* C,T0* a1,T0* a2,T0* a3){
  590. T0* _ms=NULL;
  591. int _i=0;
  592. r380make_e_feature(C,a1,a2);
  593. {T381*n=malloc(sizeof(*n));
  594. *n=M381;
  595. r381make(n,1,/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/);
  596. C->_values=(T0*)n;
  597. }
  598. /*[IRF3.6put*/{T381* C1=((T381*)((((T380*)C))->_values/*24*/));
  599. T0* b1=a3;
  600. int b2=1;
  601. ((((T381*)C1))->_storage/*4*/)[(b2)-((((T381*)C1))->_lower/*16*/)]=(b1);
  602. }/*]*/
  603. _i=2;
  604. while (!((_i)>((((T381*)((T381*)((((T380*)C))->_values/*24*/))))->_upper/*12*/))) {
  605. {T805*n=malloc(sizeof(*n));
  606. *n=M805;
  607. r805from_manifest_string(n,a3,_i);
  608. _ms=(T0*)n;
  609. }
  610. /*[IRF3.6put*/{T381* C1=((T381*)((((T380*)C))->_values/*24*/));
  611. T0* b1=_ms;
  612. int b2=_i;
  613. ((((T381*)C1))->_storage/*4*/)[(b2)-((((T381*)C1))->_lower/*16*/)]=(b1);
  614. }/*]*/
  615. _i=(_i)+(1);
  616. }
  617. }
  618. /*No:CST_ATT_STRING.nb_errors*/
  619. /*No:CST_ATT_STRING.set_header_comment*/
  620. /*No:CST_ATT_STRING.values*/
  621. T0* r380start_position(T380* C){
  622. T0* R=NULL;
  623. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T380*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  624. return R;
  625. }
  626. T0* r380to_run_feature(T380* C,T0* a1,T0* a2){
  627. T0* R=NULL;
  628. T0* _rc=NULL;
  629. _rc=X291run_class(a1);
  630. R=r355at(((T355*)_rc),a2);
  631. if(NULL!=(R))switch(((T0*)R)->id) {
  632. case 808: 
  633. break;
  634. default:
  635. R=NULL;
  636. };/*IF*/if ((R)==((void*)(NULL))) {
  637. {T808*n=malloc(sizeof(*n));
  638. *n=M808;
  639. r808make(n,a1,a2,(T0*)C);
  640. R=(T0*)n;
  641. }
  642. }
  643. /*FI*/return R;
  644. }
  645. /*No:CST_ATT_STRING.ensure_assertion*/
  646. /*No:CST_ATT_STRING.code_require*/
  647. /*No:CST_ATT_STRING.result_type*/
  648. /*No:CST_ATT_STRING.em1*/
  649. /*No:CST_ATT_STRING.set_clients*/
  650. /*No:CST_ATT_STRING.em2*/
  651. /*No:CST_ATT_STRING.value*/
  652. /*No:CST_ATT_STRING.require_assertion*/
  653. /*No:CST_ATT_STRING.names*/
  654. int r380can_hide(T380* C,T0* a1,T0* a2){
  655. int R=0;
  656. /*IF*/if (((((T380*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  657. /*IF*/if ((((((T380*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  658. r683add_position(X359start_position(a1));
  659. r380error(r380start_position(C),((T0*)ms5_359));
  660. }
  661. /*FI*/}
  662. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  663. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  664. r380error(r380start_position(C),((T0*)ms6_359));
  665. }
  666. /*FI*/}
  667. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  668. /*IF*/if (((((T380*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  669. /*IF*/if (!(X291is_a_in((((T380*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  670. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  671. r7append(((T7*)(oBC683explanation)),b1);
  672. }/*]*/
  673. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  674. r7append(((T7*)(oBC683explanation)),b1);
  675. }/*]*/
  676. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  677. }
  678. /*FI*/}
  679. /*FI*/}
  680. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  681. /*IF*//*AF*//*AE*/
  682. /*FI*/}
  683. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  684. return R;
  685. }
  686. /*No:CST_ATT_STRING.header_comment*/
  687. int r380is_merge_with(T380* C,T0* a1,T0* a2){
  688. int R=0;
  689. /*IF*/if (((((T380*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  690. /*IF*/if ((((((T380*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  691. r683add_position(X359start_position(a1));
  692. r380error(r380start_position(C),((T0*)ms2_359));
  693. }
  694. /*FI*/}
  695. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  696. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  697. r380error(r380start_position(C),((T0*)ms3_359));
  698. }
  699. /*FI*/}
  700. /*FI*//*IF*/if (((((T380*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  701. /*IF*/if (!(X291is_a_in((((T380*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  702. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  703. }
  704. /*FI*/}
  705. /*FI*//*IF*//*AF*//*AE*/
  706. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  707. return R;
  708. }
  709. /*No:CST_ATT_STRING.fz_dot*/
  710. /*No:CST_ATT_STRING.first_name*/
  711. /*No:CST_ATT_STRING.clients*/
  712. void r380collect_for(int a1){
  713. /*IF*/if ((a1)==(1001)) {
  714. /*IF*//*AF*//*AE*/
  715. /*FI*/}
  716. else {
  717. /*IF*//*AF*//*AE*/
  718. /*FI*/}
  719. /*FI*/}
  720. void r380error(T0* a1,T0* a2){
  721. r683add_position(a1);
  722. r683error(((T683*)(oBC364eh)),a2);
  723. }
  724. /*No:CST_ATT_STRING.base_class*/
  725. void r380make_e_feature(T380* C,T0* a1,T0* a2){
  726. C->_names=a1;
  727. C->_result_type=a2;
  728. }
  729. /*No:CST_ATT_BIT.arguments*/
  730. T0* r588try_to_undefine(T588* C,T0* a1,T0* a2){
  731. T0* R=NULL;
  732. X776undefine_in(a1,a2);
  733. R=r588try_to_undefine_aux(C,a1,a2);
  734. /*IF*/if ((R)!=((void*)(NULL))) {
  735. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T588*)C))->_clients/*20*/);
  736. /*]*/
  737. }
  738. else {
  739. r605fatal_undefine(((T605*)a2),a1);
  740. }
  741. /*FI*/return R;
  742. }
  743. /*No:CST_ATT_BIT.is_deferred*/
  744. void r588add_into(T588* C,T0* a1){
  745. T0* _fn=NULL;
  746. int _i=0;
  747. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  748. _i=1;
  749. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  750. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  751. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  752. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  753. r683add_position(X776start_position(_fn));
  754. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  755. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  756. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  757. r7append(((T7*)(oBC683explanation)),b1);
  758. }/*]*/
  759. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  760. }
  761. else {
  762. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  763. }
  764. /*FI*/_i=(_i)+(1);
  765. }
  766. }
  767. T0* r588try_to_undefine_aux(T588* C,T0* a1,T0* a2){
  768. T0* R=NULL;
  769. r683add_position(r588start_position(C));
  770. r588error(X776start_position(a1),((T0*)ms1_321));
  771. r605fatal_undefine(((T605*)a2),a1);
  772. return R;
  773. }
  774. void r588make(T588* C,T0* a1,T0* a2,T0* a3){
  775. r588make_e_feature(C,a1,a2);
  776. C->_value_mem=a3;
  777. }
  778. /*No:CST_ATT_BIT.nb_errors*/
  779. /*No:CST_ATT_BIT.set_header_comment*/
  780. T0* r588start_position(T588* C){
  781. T0* R=NULL;
  782. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T588*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  783. return R;
  784. }
  785. T0* r588to_run_feature(T588* C,T0* a1,T0* a2){
  786. T0* R=NULL;
  787. T0* _rc=NULL;
  788. _rc=X291run_class(a1);
  789. R=r355at(((T355*)_rc),a2);
  790. if(NULL!=(R))switch(((T0*)R)->id) {
  791. case 808: 
  792. break;
  793. default:
  794. R=NULL;
  795. };/*IF*/if ((R)==((void*)(NULL))) {
  796. {T808*n=malloc(sizeof(*n));
  797. *n=M808;
  798. r808make(n,a1,a2,(T0*)C);
  799. R=(T0*)n;
  800. }
  801. }
  802. /*FI*/return R;
  803. }
  804. /*No:CST_ATT_BIT.ensure_assertion*/
  805. /*No:CST_ATT_BIT.code_require*/
  806. /*No:CST_ATT_BIT.result_type*/
  807. /*No:CST_ATT_BIT.em1*/
  808. /*No:CST_ATT_BIT.set_clients*/
  809. /*No:CST_ATT_BIT.em2*/
  810. /*No:CST_ATT_BIT.value*/
  811. /*No:CST_ATT_BIT.require_assertion*/
  812. /*No:CST_ATT_BIT.names*/
  813. /*No:CST_ATT_BIT.value_mem*/
  814. int r588can_hide(T588* C,T0* a1,T0* a2){
  815. int R=0;
  816. /*IF*/if (((((T588*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  817. /*IF*/if ((((((T588*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  818. r683add_position(X359start_position(a1));
  819. r588error(r588start_position(C),((T0*)ms5_359));
  820. }
  821. /*FI*/}
  822. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  823. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  824. r588error(r588start_position(C),((T0*)ms6_359));
  825. }
  826. /*FI*/}
  827. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  828. /*IF*/if (((((T588*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  829. /*IF*/if (!(X291is_a_in((((T588*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  830. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  831. r7append(((T7*)(oBC683explanation)),b1);
  832. }/*]*/
  833. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  834. r7append(((T7*)(oBC683explanation)),b1);
  835. }/*]*/
  836. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  837. }
  838. /*FI*/}
  839. /*FI*/}
  840. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  841. /*IF*//*AF*//*AE*/
  842. /*FI*/}
  843. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  844. return R;
  845. }
  846. /*No:CST_ATT_BIT.header_comment*/
  847. int r588is_merge_with(T588* C,T0* a1,T0* a2){
  848. int R=0;
  849. /*IF*/if (((((T588*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  850. /*IF*/if ((((((T588*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  851. r683add_position(X359start_position(a1));
  852. r588error(r588start_position(C),((T0*)ms2_359));
  853. }
  854. /*FI*/}
  855. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  856. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  857. r588error(r588start_position(C),((T0*)ms3_359));
  858. }
  859. /*FI*/}
  860. /*FI*//*IF*/if (((((T588*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  861. /*IF*/if (!(X291is_a_in((((T588*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  862. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  863. }
  864. /*FI*/}
  865. /*FI*//*IF*//*AF*//*AE*/
  866. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  867. return R;
  868. }
  869. /*No:CST_ATT_BIT.fz_dot*/
  870. /*No:CST_ATT_BIT.first_name*/
  871. /*No:CST_ATT_BIT.clients*/
  872. void r588collect_for(int a1){
  873. /*IF*/if ((a1)==(1001)) {
  874. /*IF*//*AF*//*AE*/
  875. /*FI*/}
  876. else {
  877. /*IF*//*AF*//*AE*/
  878. /*FI*/}
  879. /*FI*/}
  880. void r588error(T0* a1,T0* a2){
  881. r683add_position(a1);
  882. r683error(((T683*)(oBC364eh)),a2);
  883. }
  884. /*No:CST_ATT_BIT.base_class*/
  885. void r588make_e_feature(T588* C,T0* a1,T0* a2){
  886. C->_names=a1;
  887. C->_result_type=a2;
  888. }
  889. /*No:JVM.dos_system*/
  890. T0*oBC861stack_cpc=NULL;
  891. /*No:JVM.fz_system_se*/
  892. /*No:JVM.fz_sys*/
  893. /*No:JVM.C_switch*/
  894. void r228write_main_class(T228* C,T0* a1){
  895. T0* _ca=NULL;
  896. T0* _cp=NULL;
  897. int _idx=0;
  898. _cp=oBC364constant_pool;
  899. _ca=oBC364code_attribute;
  900. r7copy(((T7*)(oBC228out_file_path)),(((T228*)C))->_output_name/*16*/);
  901. r7append(((T7*)(oBC228out_file_path)),((T0*)ms40_364));
  902. r228bfw_connect(C,oBC228out_file,oBC228out_file_path);
  903. r228start_basic(C);
  904. C->_access_flags=16;
  905. C->_this_class_idx=r95idx_class2(((T95*)_cp),(((T228*)C))->_output_name/*16*/);
  906. C->_super_class_idx=(((T95*)((T95*)_cp)))->_idx_java_lang_object/*8*/;
  907. C->_current_frame=NULL;
  908. r506start(((T506*)(oBC364method_info)),9,((T0*)ms114_470),((T0*)ms155_470));
  909. /*[IRF3.2set_args_field*/{T0* _ca=NULL;
  910. _ca=oBC364code_attribute;
  911. /*[IRF3.4opcode_aload_0*/r256opcode(((T256*)_ca),42,1);
  912. /*]*/
  913. r256opcode_putstatic(((T256*)_ca),r228args_field_idx(),-(1));
  914. }/*]*/
  915. _idx=r95idx_methodref3(((T95*)_cp),r228jvm_root_class(),((T0*)ms160_470),((T0*)ms161_470));
  916. r256opcode_invokestatic(((T256*)_ca),_idx,0);
  917. r355jvm_push_default(((T355*)(r832run_class(((T832*)a1)))));
  918. _idx=r95idx_methodref(((T95*)_cp),a1);
  919. r256opcode_invokevirtual(((T256*)_ca),_idx,-(1));
  920. r256opcode_system_out(((T256*)_ca));
  921. _idx=r95idx_methodref3(((T95*)_cp),((T0*)ms157_470),((T0*)ms174_470),((T0*)ms161_470));
  922. r256opcode_invokevirtual(((T256*)_ca),_idx,-(1));
  923. r256opcode_system_err(((T256*)_ca));
  924. r256opcode_invokevirtual(((T256*)_ca),_idx,-(1));
  925. /*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{int b1=177;
  926. r226add_last(((T226*)(oBC256code)),b1);
  927. }/*]*/
  928. /*]*/
  929. r506finish(((T506*)(oBC364method_info)));
  930. r228finish_class(C);
  931. }
  932. void r228finish_class(T228* C){
  933. /*[IRF3.6put_magic*/{T228* C1=C;
  934. r228b_put_byte_string(C1,((T0*)ms4_228));
  935. }/*]*/
  936. /*[IRF3.4put_minor_version*/r228b_put_u2(C,3);
  937. /*]*/
  938. /*[IRF3.6put_major_version*/{T228* C1=C;
  939. r228b_put_byte_string(C1,((T0*)ms5_228));
  940. }/*]*/
  941. r95write_bytes(((T95*)(oBC364constant_pool)));
  942. r228b_put_u2(C,(((T228*)C))->_access_flags/*24*/);
  943. r228b_put_u2(C,(((T228*)C))->_this_class_idx/*28*/);
  944. r228b_put_u2(C,(((T228*)C))->_super_class_idx/*32*/);
  945. r228b_put_u2(C,0);
  946. r543write_bytes(((T543*)(oBC364field_info)));
  947. r506write_bytes(((T506*)(oBC364method_info)));
  948. r228b_put_u2(C,0);
  949. r994disconnect(((T994*)(oBC228out_file)));
  950. r306print_count(((T306*)(oBC364echo)),((T0*)ms3_228),(((T228*)C))->_b_put_u1_count/*20*/);
  951. }
  952. void r228add_field(T0* a1){
  953. X308add_last(oBC228fields,a1);
  954. }
  955. /*No:JVM.C_expanded_initialize*/
  956. /*No:JVM.prepare_fields*/
  957. /*No:JVM.push_se_argc*/
  958. /*No:JVM.us_generator*/
  959. int r228max_locals(T228* C){
  960. int R=0;
  961. /*IF*/if (((((T228*)C))->_current_frame/*36*/)!=((void*)(NULL))) {
  962. R=X496jvm_max_locals((((T228*)C))->_current_frame/*36*/);
  963. }
  964. else {
  965. R=4;
  966. }
  967. /*FI*/return R;
  968. }
  969. /*No:JVM.access_flags*/
  970. /*No:JVM.unix_system*/
  971. int r228local_offset_of(T228* C,T0* a1){
  972. int R=0;
  973. R=X496jvm_local_variable_offset((((T228*)C))->_current_frame/*36*/,a1);
  974. return R;
  975. }
  976. /*No:JVM.exit_failure_code*/
  977. /*No:JVM.current_frame*/
  978. /*No:JVM.vms_system*/
  979. void r228start_directory(T228* C,T0* a1,T0* a2){
  980. /*[IRF3.3clear*/((((T7*)(((T7*)a1))))->_count)=(0);
  981. /*]*/
  982. /*IF*/if ((((T0*)ms17_364))==((void*)(r228system_name(C)))) {
  983. r7append(((T7*)a1),a2);
  984. r7set_last(((T7*)a1),'\57');
  985. }
  986.  else if ((((T0*)ms19_364))==((void*)(r228system_name(C)))) {
  987. r7append(((T7*)a1),a2);
  988. r7set_last(((T7*)a1),'\134');
  989. }
  990.  else if ((((T0*)ms15_364))==((void*)(r228system_name(C)))) {
  991. r7append(((T7*)a1),a2);
  992. r7set_last(((T7*)a1),'\72');
  993. }
  994.  else if ((((T0*)ms14_364))==((void*)(r228system_name(C)))) {
  995. r7append(((T7*)a1),a2);
  996. r7set_last(((T7*)a1),'\134');
  997. }
  998.  else if ((((T0*)ms16_364))==((void*)(r228system_name(C)))) {
  999. r7append(((T7*)a1),a2);
  1000. r7set_last(((T7*)a1),'\134');
  1001. }
  1002.  else if ((((T0*)ms13_364))==((void*)(r228system_name(C)))) {
  1003. r7append(((T7*)a1),a2);
  1004. r7set_last(((T7*)a1),'\57');
  1005. }
  1006.  else if ((((T0*)ms18_364))==((void*)(r228system_name(C)))) {
  1007. r7set_last(((T7*)a1),'\133');
  1008. r7append(((T7*)a1),a2);
  1009. r7set_last(((T7*)a1),'\135');
  1010. }
  1011. /*FI*/}
  1012. T576 oBC364switch_collection=0;
  1013. void r228start_new_class(T228* C,T0* a1){
  1014. T0* _cp=NULL;
  1015. int _type_idx=0;
  1016. int _name_idx=0;
  1017. _cp=oBC364constant_pool;
  1018. r228start_basic(C);
  1019. r7copy(((T7*)(oBC228tmp_string)),r355unqualified_name(((T355*)a1)));
  1020. r7to_lower(((T7*)(oBC228tmp_string)));
  1021. r228start_directory(C,oBC228out_file_path,(((T228*)C))->_output_name/*16*/);
  1022. r7append(((T7*)(oBC228out_file_path)),oBC228tmp_string);
  1023. r7append(((T7*)(oBC228out_file_path)),((T0*)ms40_364));
  1024. r228bfw_connect(C,oBC228out_file,oBC228out_file_path);
  1025. C->_access_flags=16;
  1026. C->_this_class_idx=r355fully_qualified_constant_pool_index(((T355*)a1));
  1027. C->_super_class_idx=(((T95*)((T95*)_cp)))->_idx_jvm_root_class/*12*/;
  1028. r506start(((T506*)(oBC364method_info)),9,((T0*)ms202_470),((T0*)ms161_470));
  1029. _name_idx=r95idx_uft8(((T95*)_cp),((T0*)ms78_473));
  1030. _type_idx=r95idx_eiffel_string_descriptor(((T95*)_cp));
  1031. r543add(((T543*)(oBC364field_info)),9,_name_idx,_type_idx);
  1032. _name_idx=r95idx_fieldref5(((T95*)_cp),(((T228*)C))->_this_class_idx/*28*/,_name_idx,_type_idx);
  1033. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
  1034. /*]*/
  1035. r256opcode_putstatic(((T256*)(oBC364code_attribute)),_name_idx,-(1));
  1036. _name_idx=r95idx_uft8(((T95*)_cp),((T0*)ms79_473));
  1037. r543add(((T543*)(oBC364field_info)),9,_name_idx,_type_idx);
  1038. _name_idx=r95idx_fieldref5(((T95*)_cp),(((T228*)C))->_this_class_idx/*28*/,_name_idx,_type_idx);
  1039. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
  1040. /*]*/
  1041. r256opcode_putstatic(((T256*)(oBC364code_attribute)),_name_idx,-(1));
  1042. /*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{int b1=177;
  1043. r226add_last(((T226*)(oBC256code)),b1);
  1044. }/*]*/
  1045. /*]*/
  1046. r506finish(((T506*)(oBC364method_info)));
  1047. r355jvm_define_class_invariant(((T355*)a1));
  1048. }
  1049. /*No:JVM.C_inside_new*/
  1050. void r228add_method(T0* a1){
  1051. X308add_last(oBC228methods,a1);
  1052. }
  1053. T0* r228small_eiffel_directory(T228* C){
  1054. if (fBC364small_eiffel_directory==0){
  1055. T0* R=NULL;
  1056. char _slash=0;
  1057. int _i=0;
  1058. fBC364small_eiffel_directory=1;
  1059. R=r228get_environment_variable(C,((T0*)ms121_470));
  1060. /*IF*/if ((R)==((void*)(NULL))) {
  1061. R=r7twin(((T7*)(((T0*)ms121_470))));
  1062. r7to_upper(((T7*)R));
  1063. R=r228get_environment_variable(C,R);
  1064. /*IF*/if ((R)!=((void*)(NULL))) {
  1065. r7to_upper(((T7*)(((T0*)ms121_470))));
  1066. }
  1067. /*FI*/}
  1068. /*FI*//*IF*/if ((R)==((void*)(NULL))) {
  1069. R=((T0*)ms1_364);
  1070. }
  1071. /*FI*/_i=(((T7*)((T7*)R)))->_count/*4*/;
  1072. while (!((_i)<(0))) {
  1073. _slash=/*(IRF4.6item*/((((T7*)((T7*)R)))->_storage/*0*/)[(_i)-(1)]/*)*/;
  1074. /*IF*/if ((r3is_letter(_slash))||(r3is_digit(_slash))) {
  1075. _i=(_i)-(1);
  1076. }
  1077. else {
  1078. _i=-(1);
  1079. }
  1080. /*FI*/}
  1081. /*IF*/if ((_i)==(0)) {
  1082. r7extend(((T7*)R),'\57');
  1083. }
  1084.  else if (!((r7last(((T7*)R)))==(_slash))) {
  1085. r7extend(((T7*)R),_slash);
  1086. }
  1087. /*FI*/oBC364small_eiffel_directory=R;}
  1088. return oBC364small_eiffel_directory;}
  1089. T0*oBC861stack_rf=NULL;
  1090. int r228idx_void_target(T0* a1){
  1091. int R=0;
  1092. T0* _sp=NULL;
  1093. r7copy(((T7*)(oBC228tmp_string)),((T0*)ms12_228));
  1094. _sp=X662start_position(a1);
  1095. /*IF*/if ((_sp)!=((void*)(NULL))) {
  1096. r627append_in(((T627*)_sp),oBC228tmp_string);
  1097. }
  1098. /*FI*/R=r95idx_string(((T95*)(oBC364constant_pool)),oBC228tmp_string);
  1099. return R;
  1100. }
  1101. void r228opcode_check_id_for(T0* a1){
  1102. T0* _ca=NULL;
  1103. T0* _rc=NULL;
  1104. int _idx=0;
  1105. int _point2=0;
  1106. int _point1=0;
  1107. X662compile_to_jvm(a1);
  1108. /*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  1109. _ca=oBC364code_attribute;
  1110. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  1111. /*]*/
  1112. _point1=r256opcode_ifnull(((T256*)_ca));
  1113. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  1114. /*]*/
  1115. _rc=r396first(((T396*)((((T355*)((T355*)(X291run_class(X662result_type(a1))))))->_running/*12*/)));
  1116. _idx=r355fully_qualified_constant_pool_index(((T355*)_rc));
  1117. r256opcode_instanceof(((T256*)_ca),_idx);
  1118. _point2=r256opcode_ifne(((T256*)_ca));
  1119. _idx=r228idx_bad_target(a1);
  1120. r256opcode_system_err_println(((T256*)_ca),_idx);
  1121. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)_ca),1,1);
  1122. /*]*/
  1123. /*[IRF3.4opcode_athrow*/r256opcode(((T256*)_ca),191,0);
  1124. /*]*/
  1125. r256resolve_u2_branch(_point1);
  1126. _idx=r228idx_void_target(a1);
  1127. r256opcode_system_err_println(((T256*)_ca),_idx);
  1128. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)_ca),1,1);
  1129. /*]*/
  1130. /*[IRF3.4opcode_athrow*/r256opcode(((T256*)_ca),191,0);
  1131. /*]*/
  1132. r256resolve_u2_branch(_point2);
  1133. r355jvm_check_class_invariant(((T355*)_rc));
  1134. }
  1135. /*FI*/}
  1136. /*No:JVM.amiga_system*/
  1137. /*No:JVM.make*/
  1138. T0*oBC228fields=NULL;
  1139. T0* r228jvm_root_class(void){
  1140. if (fBC364jvm_root_class==0){
  1141. T0* R=NULL;
  1142. fBC364jvm_root_class=1;
  1143. {T7*n=malloc(sizeof(*n));
  1144. *n=M7;
  1145. r7make(n,12);
  1146. R=(T0*)n;
  1147. }
  1148. r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
  1149. r7extend(((T7*)R),'\57');
  1150. r7append(((T7*)R),((T0*)ms112_470));
  1151. oBC364jvm_root_class=R;}
  1152. return oBC364jvm_root_class;}
  1153. /*No:JVM.this_class_idx*/
  1154. /*No:JVM.set_args_field*/
  1155. void r228b_put_u1(T228* C,char a1){
  1156. /*[IRF3.6put_byte*/{T994* C1=((T994*)(oBC228out_file));
  1157. char b1=a1;
  1158. fputc(b1,C1->_output_stream);}/*]*/
  1159. C->_b_put_u1_count=((((T228*)C))->_b_put_u1_count/*20*/)+(1);
  1160. }
  1161. int r228argument_offset_of(T228* C,T0* a1){
  1162. int R=0;
  1163. R=X496jvm_argument_offset((((T228*)C))->_current_frame/*36*/,a1);
  1164. return R;
  1165. }
  1166. void r228drop_ith_argument(T228* C,int a1){
  1167. int _space=0;
  1168. _space=r228push_ith_argument(C,a1);
  1169. while (!((_space)==(0))) {
  1170. /*[IRF3.4opcode_pop*/r256opcode(((T256*)(oBC364code_attribute)),87,-(1));
  1171. /*]*/
  1172. _space=(_space)-(1);
  1173. }
  1174. }
  1175. T0*oBC228methods=NULL;
  1176. void r228b_put_u2(T228* C,int a1){
  1177. r228b_put_u1(C,((char)((a1)/(256))));
  1178. r228b_put_u1(C,((char)((a1)%(256))));
  1179. }
  1180. void r228prepare_methods(T228* C){
  1181. int _i=0;
  1182. _i=/*X308*/((int)(((T308*)((T308*)(oBC228methods))))->_upper/*12*/);
  1183. while (!((_i)<(0))) {
  1184. /*[IRF3.3set_current_frame*/((((T228*)(C)))->_current_frame)=(/*X308*/((T0*)r308item(((T308*)(oBC228methods)),_i)));
  1185. /*]*/
  1186. X496jvm_define((((T228*)C))->_current_frame/*36*/);
  1187. _i=(_i)-(1);
  1188. }
  1189. }
  1190. /*No:JVM.set_current_frame*/
  1191. /*No:JVM.put_major_version*/
  1192. /*No:JVM.static_expression_count*/
  1193. /*No:JVM.fz_invariant*/
  1194. /*No:JVM.set_output_name*/
  1195. /*No:JVM.windows_system*/
  1196. T0*oBC228out_file=NULL;
  1197. void r228inside_twin(T228* C,T0* a1){
  1198. r228stack_push(C,1015);
  1199. /*X308*//*[IRF3.6put*/{T308* C1=((T308*)(oBC861stack_rf));
  1200. T0* b1=a1;
  1201. int b2=(((T228*)C))->_top/*4*/;
  1202. ((((T308*)C1))->_storage/*4*/)[b2]=(b1);
  1203. }/*]*/
  1204. X496mapping_jvm(a1);
  1205. r228pop(C);
  1206. }
  1207. int r228push_ith_argument(T228* C,int a1){
  1208. int R=0;
  1209. T0* _fal=NULL;
  1210. T0* _dyn_rf=NULL;
  1211. T0* _rf=NULL;
  1212. T0* _eal=NULL;
  1213. T0* _cpc=NULL;
  1214. int _code=0;
  1215. _code=/*(IRF4.6item*/((((T226*)((T226*)(oBC861stack_code))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
  1216. {int z1=_code;
  1217.  
  1218. if(((1007<=z1)&&(z1<=1008))){
  1219. _cpc=/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
  1220. _eal=X135arguments(_cpc);
  1221. /*IF*/if ((_eal)!=((void*)(NULL))) {
  1222. _rf=X135run_feature(_cpc);
  1223. _fal=/*X496*/((T0*)(((T832*)((T832*)_rf)))->_arguments/*20*/);
  1224. R=r431compile_to_jvm_ith(((T431*)_eal),_fal,a1);
  1225. }
  1226. /*FI*/}
  1227.  else 
  1228. if((1009==z1)){
  1229. _rf=/*X308*/((T0*)r308item(((T308*)(oBC861stack_static_rf)),(((T228*)C))->_top/*4*/));
  1230. _dyn_rf=/*X308*/((T0*)r308item(((T308*)(oBC861stack_rf)),(((T228*)C))->_top/*4*/));
  1231. _fal=/*X496*/((T0*)(((T832*)((T832*)_rf)))->_arguments/*20*/);
  1232. /*IF*/if ((_fal)!=((void*)(NULL))) {
  1233. R=r31jvm_switch_push_ith(((T31*)_fal),/*X496*/((T0*)(((T832*)((T832*)_dyn_rf)))->_arguments/*20*/),a1);
  1234. }
  1235. /*FI*/}
  1236.  else 
  1237. if((1011==z1)){
  1238. }
  1239.  else 
  1240. if((1010==z1)){
  1241. _cpc=/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
  1242. _eal=X135arguments(_cpc);
  1243. /*IF*/if ((_eal)!=((void*)(NULL))) {
  1244. _rf=/*X308*/((T0*)r308item(((T308*)(oBC861stack_rf)),(((T228*)C))->_top/*4*/));
  1245. _fal=/*X496*/((T0*)(((T832*)((T832*)_rf)))->_arguments/*20*/);
  1246. R=r431compile_to_jvm_ith(((T431*)_eal),_fal,a1);
  1247. }
  1248. /*FI*/}
  1249.  else 
  1250. if((1015==z1)){
  1251. /*[IRF3.4opcode_aload_0*/r256opcode(((T256*)(oBC364code_attribute)),42,1);
  1252. /*]*/
  1253. R=1;
  1254. }
  1255.  else{/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms10_228);
  1256. r683fatal_error(((T683*)(oBC364eh)),b1);
  1257. }/*]*/
  1258. }}
  1259. return R;
  1260. }
  1261. int r228result_offset(T228* C){
  1262. int R=0;
  1263. R=X496jvm_result_offset((((T228*)C))->_current_frame/*36*/);
  1264. return R;
  1265. }
  1266. T0*oBC861stack_code=NULL;
  1267. /*No:JVM.put_minor_version*/
  1268. void r228push_expanded_initialize(T228* C,T0* a1){
  1269. r228stack_push(C,1011);
  1270. /*X308*//*[IRF3.6put*/{T308* C1=((T308*)(oBC861stack_rf));
  1271. T0* b1=a1;
  1272. int b2=(((T228*)C))->_top/*4*/;
  1273. ((((T308*)C1))->_storage/*4*/)[b2]=(b1);
  1274. }/*]*/
  1275. }
  1276. T0*oBC861stack_static_rf=NULL;
  1277. void r228define_class_invariant_method(T228* C,T0* a1){
  1278. T0* _cp=NULL;
  1279. T0* _ca=NULL;
  1280. _ca=oBC364code_attribute;
  1281. _cp=oBC364constant_pool;
  1282. r506start(((T506*)(oBC364method_info)),17,((T0*)ms26_470),((T0*)ms161_470));
  1283. r228stack_push(C,1009);
  1284. r699compile_to_jvm(((T699*)a1),1);
  1285. r228pop(C);
  1286. /*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{int b1=177;
  1287. r226add_last(((T226*)(oBC256code)),b1);
  1288. }/*]*/
  1289. /*]*/
  1290. r506finish(((T506*)(oBC364method_info)));
  1291. }
  1292. T0* r228get_environment_variable(T228* C,T0* a1){
  1293. T0* R=NULL;
  1294. void* _p=0;
  1295. _p=r7to_external(((T7*)a1));
  1296. R=(NULL==(_p=getenv((char*)_p)))?NULL:((T0*)e2s((char*)_p));
  1297. return R;
  1298. }
  1299. T0* r228target_position(T228* C){
  1300. T0* R=NULL;
  1301. int _code=0;
  1302. _code=/*(IRF4.6item*/((((T226*)((T226*)(oBC861stack_code))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
  1303. {int z1=_code;
  1304.  
  1305. if(((1007<=z1)&&(z1<=1008))){
  1306. R=X135start_position(/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/);
  1307. }
  1308.  else 
  1309. if((1015==z1)){
  1310. }
  1311.  else 
  1312. if((1009==z1)){
  1313. }
  1314.  else 
  1315. if((1011==z1)){
  1316. }
  1317.  else 
  1318. if((1010==z1)){
  1319. R=X135start_position(/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/);
  1320. }
  1321. }
  1322. return R;
  1323. }
  1324. /*No:JVM.switch_count*/
  1325. /*No:JVM.super_class_idx*/
  1326. void r228stack_push(T228* C,int a1){
  1327. int _new_size=0;
  1328. C->_top=((((T228*)C))->_top/*4*/)+(1);
  1329. /*IF*/if (((((T228*)C))->_top/*4*/)>((((T226*)((T226*)(oBC861stack_code))))->_upper/*8*/)) {
  1330. _new_size=((((T226*)((T226*)(oBC861stack_code))))->_upper/*8*/)*(2);
  1331. r226resize(((T226*)(oBC861stack_code)),_new_size);
  1332. X308resize(oBC861stack_rf,_new_size);
  1333. X32resize(oBC861stack_target,_new_size);
  1334. r374resize(((T374*)(oBC861stack_args)),_new_size);
  1335. X308resize(oBC861stack_static_rf,_new_size);
  1336. r569resize(((T569*)(oBC861stack_cpc)),_new_size);
  1337. /*IF*/if ((_new_size)>(2048)) {
  1338. r228stack_overflow(C);
  1339. }
  1340. /*FI*/}
  1341. /*FI*//*[IRF3.5put*/((((T226*)((T226*)(oBC861stack_code))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]=(a1);
  1342. /*]*/
  1343. }
  1344. /*No:JVM.fz_41*/
  1345. void r228bfw_connect(T228* C,T0* a1,T0* a2){
  1346. r994connect_to(((T994*)a1),a2);
  1347. /*IF*/if (/*(IRF4.7is_connected*/((((T994*)((T994*)a1)))->_path/*0*/)!=(NULL)/*)*/) {
  1348. r306put_string(((T306*)(oBC364echo)),((T0*)ms9_364));
  1349. r306put_string(((T306*)(oBC364echo)),a2);
  1350. r306put_string(((T306*)(oBC364echo)),((T0*)ms10_364));
  1351. }
  1352. else {
  1353. r306w_put_string(((T0*)ms11_364));
  1354. r306w_put_string(a2);
  1355. r306w_put_string(((T0*)ms242_470));
  1356. exit(1);
  1357. }
  1358. /*FI*/}
  1359. /*No:JVM.fz_23*/
  1360. T0* r228system_name(T228* C){
  1361. if (fBC364system_name==0){
  1362. T0* R=NULL;
  1363. int _i=0;
  1364. fBC364system_name=1;
  1365. r7copy(((T7*)(oBC364tmp_path)),r228small_eiffel_directory(C));
  1366. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\57')) {
  1367. r7set_last(((T7*)(oBC364tmp_path)),'\57');
  1368. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1369. r7extend(((T7*)(oBC364tmp_path)),'\57');
  1370. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1371. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1372. }
  1373. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1374. r7copy(((T7*)(oBC364tmp_path)),r228small_eiffel_directory(C));
  1375. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\134')) {
  1376. r7set_last(((T7*)(oBC364tmp_path)),'\134');
  1377. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1378. r7extend(((T7*)(oBC364tmp_path)),'\134');
  1379. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1380. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1381. }
  1382. /*FI*/}
  1383. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1384. r7copy(((T7*)(oBC364tmp_path)),r228small_eiffel_directory(C));
  1385. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\72')) {
  1386. r7set_last(((T7*)(oBC364tmp_path)),'\72');
  1387. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1388. r7extend(((T7*)(oBC364tmp_path)),'\72');
  1389. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1390. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1391. }
  1392. /*FI*/}
  1393. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1394. r7copy(((T7*)(oBC364tmp_path)),r228small_eiffel_directory(C));
  1395. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\135')) {
  1396. r7set_last(((T7*)(oBC364tmp_path)),'\135');
  1397. r7remove_last(((T7*)(oBC364tmp_path)),1);
  1398. r7extend(((T7*)(oBC364tmp_path)),'\56');
  1399. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1400. r7extend(((T7*)(oBC364tmp_path)),'\135');
  1401. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1402. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1403. }
  1404. /*FI*/}
  1405. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1406. r7copy(((T7*)(oBC364tmp_path)),r228small_eiffel_directory(C));
  1407. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1408. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1409. }
  1410. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1411. r306w_put_string(((T0*)ms20_364));
  1412. r306w_put_string(((T0*)ms127_470));
  1413. r306w_put_string(((T0*)ms21_364));
  1414. r306w_put_string(r228small_eiffel_directory(C));
  1415. r306w_put_string(((T0*)ms242_470));
  1416. exit(1);
  1417. }
  1418. /*FI*/r675read_line(((T675*)(oBC364tmp_file_read)));
  1419. R=oBC762last_string;
  1420. _i=r52index_of(((T52*)(oBC364system_list)),R);
  1421. r675disconnect(((T675*)(oBC364tmp_file_read)));
  1422. /*IF*/if ((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/)) {
  1423. r306w_put_string(((T0*)ms22_364));
  1424. r306w_put_string(oBC364tmp_path);
  1425. r306w_put_string(((T0*)ms23_364));
  1426. _i=1;
  1427. while (!((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/))) {
  1428. r306w_put_string(r52item(((T52*)(oBC364system_list)),_i));
  1429. r306w_put_character('\n');
  1430. _i=(_i)+(1);
  1431. }
  1432. }
  1433. else {
  1434. R=r52item(((T52*)(oBC364system_list)),_i);
  1435. r306put_string(((T306*)(oBC364echo)),((T0*)ms24_364));
  1436. r306put_string(((T306*)(oBC364echo)),R);
  1437. r306put_string(((T306*)(oBC364echo)),((T0*)ms242_470));
  1438. }
  1439. /*FI*/oBC364system_name=R;}
  1440. return oBC364system_name;}
  1441. /*No:JVM.fz_42*/
  1442. void r228b_put_byte_string(T228* C,T0* a1){
  1443. int _i=0;
  1444. _i=1;
  1445. while (!((_i)>((((T7*)((T7*)a1)))->_count/*4*/))) {
  1446. r228b_put_u1(C,/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i)-(1)]/*)*/);
  1447. _i=(_i)+(1);
  1448. }
  1449. }
  1450. void r228drop_target(T228* C){
  1451. T0* _e=NULL;
  1452. T0* _cpc=NULL;
  1453. int _code=0;
  1454. _code=/*(IRF4.6item*/((((T226*)((T226*)(oBC861stack_code))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
  1455. {int z1=_code;
  1456.  
  1457. if(((1007<=z1)&&(z1<=1008))){
  1458. _cpc=/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
  1459. _e=_cpc;
  1460. if(NULL!=(_e))switch(((T0*)_e)->id) {
  1461. case 436: case 180: case 767: case 72: case 990: case 420: case 446: case 715: case 796: case 358: case 708: case 487: case 492: case 915: case 849: case 367: case 260: case 805: case 940: case 936: case 342: case 23: case 886: case 664: case 534: case 557: case 414: case 460: case 453: case 520: case 253: case 574: case 999: case 517: case 932: case 890: case 112: case 57: case 655: case 313: case 278: case 121: case 760: case 90: case 529: case 39: case 873: 
  1462. break;
  1463. default:
  1464. _e=NULL;
  1465. };/*IF*/if (((_e)==((void*)(NULL)))||(!(X662can_be_dropped(_e)))) {
  1466. X662compile_to_jvm(X135target(_cpc));
  1467. /*IF*/if ((X291jvm_stack_space(/*X496*/((T0*)(((T832*)((T832*)(X135run_feature(_cpc)))))->_current_type/*4*/)))==(1)) {
  1468. /*[IRF3.4opcode_pop*/r256opcode(((T256*)(oBC364code_attribute)),87,-(1));
  1469. /*]*/
  1470. }
  1471. else {
  1472. /*[IRF3.4opcode_pop2*/r256opcode(((T256*)(oBC364code_attribute)),88,-(2));
  1473. /*]*/
  1474. }
  1475. /*FI*/}
  1476. /*FI*/}
  1477.  else 
  1478. if((1009==z1)){
  1479. }
  1480.  else 
  1481. if((1011==z1)){
  1482. }
  1483.  else 
  1484. if((1010==z1)){
  1485. }
  1486.  else 
  1487. if((1015==z1)){
  1488. }
  1489.  else{/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_228);
  1490. r683fatal_error(((T683*)(oBC364eh)),b1);
  1491. }/*]*/
  1492. }}
  1493. }
  1494. void r228inside_new(T228* C,T0* a1,T0* a2){
  1495. r228stack_push(C,1010);
  1496. /*X308*//*[IRF3.6put*/{T308* C1=((T308*)(oBC861stack_rf));
  1497. T0* b1=a1;
  1498. int b2=(((T228*)C))->_top/*4*/;
  1499. ((((T308*)C1))->_storage/*4*/)[b2]=(b1);
  1500. }/*]*/
  1501. /*[IRF3.5put*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]=(a2);
  1502. /*]*/
  1503. X496mapping_jvm(a1);
  1504. r228pop(C);
  1505. }
  1506. /*No:JVM.fz_b0*/
  1507. void r228start_basic(T228* C){
  1508. /*X308*//*[IRF3.3clear*/((((T308*)(((T308*)(oBC228fields)))))->_upper)=(-(1));
  1509. /*]*/
  1510. /*X308*//*[IRF3.3clear*/((((T308*)(((T308*)(oBC228methods)))))->_upper)=(-(1));
  1511. /*]*/
  1512. r95clear(((T95*)(oBC364constant_pool)));
  1513. r543clear(((T543*)(oBC364field_info)));
  1514. r506clear(((T506*)(oBC364method_info)));
  1515. C->_b_put_u1_count=0;
  1516. }
  1517. /*No:JVM.output_name*/
  1518. void r228incr_static_expression_count(T228* C){
  1519. C->_static_expression_count=((((T228*)C))->_static_expression_count/*0*/)+(1);
  1520. }
  1521. T0*oBC228tmp_string=NULL;
  1522. /*No:JVM.args_field*/
  1523. /*No:JVM.fz_25*/
  1524. /*No:JVM.us_generating_type*/
  1525. /*No:JVM.fz_se*/
  1526. void r228push_target_as_target(T228* C){
  1527. int _code=0;
  1528. _code=/*(IRF4.6item*/((((T226*)((T226*)(oBC861stack_code))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
  1529. {int z1=_code;
  1530.  
  1531. if((1007==z1)){
  1532. X662compile_target_to_jvm(X135target(/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/));
  1533. }
  1534.  else 
  1535. if((1008==z1)){
  1536. r228opcode_check_id_for(X135target(/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/));
  1537. }
  1538.  else 
  1539. if((1009==z1)){
  1540. /*[IRF3.4opcode_aload_0*/r256opcode(((T256*)(oBC364code_attribute)),42,1);
  1541. /*]*/
  1542. }
  1543.  else 
  1544. if((1011==z1)){
  1545. /*[IRF3.4opcode_dup*/r256opcode(((T256*)(oBC364code_attribute)),89,1);
  1546. /*]*/
  1547. }
  1548.  else 
  1549. if((1010==z1)){
  1550. /*[IRF3.4opcode_dup*/r256opcode(((T256*)(oBC364code_attribute)),89,1);
  1551. /*]*/
  1552. }
  1553.  else 
  1554. if((1015==z1)){
  1555. /*[IRF3.4opcode_aload_1*/r256opcode(((T256*)(oBC364code_attribute)),43,1);
  1556. /*]*/
  1557. }
  1558.  else{/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms7_228);
  1559. r683fatal_error(((T683*)(oBC364eh)),b1);
  1560. }/*]*/
  1561. }}
  1562. }
  1563. void r228push_check(T228* C,T0* a1){
  1564. r228stack_push(C,1008);
  1565. /*[IRF3.5put*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]=(a1);
  1566. /*]*/
  1567. }
  1568. /*No:JVM.os2_system*/
  1569. void r228push_target(T228* C){
  1570. int _code=0;
  1571. _code=/*(IRF4.6item*/((((T226*)((T226*)(oBC861stack_code))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
  1572. {int z1=_code;
  1573.  
  1574. if((1007==z1)){
  1575. X662compile_to_jvm(X135target(/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/));
  1576. }
  1577.  else 
  1578. if((1008==z1)){
  1579. r228opcode_check_id_for(X135target(/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/));
  1580. }
  1581.  else 
  1582. if((1009==z1)){
  1583. /*[IRF3.4opcode_aload_0*/r256opcode(((T256*)(oBC364code_attribute)),42,1);
  1584. /*]*/
  1585. }
  1586.  else 
  1587. if((1011==z1)){
  1588. /*[IRF3.4opcode_dup*/r256opcode(((T256*)(oBC364code_attribute)),89,1);
  1589. /*]*/
  1590. }
  1591.  else 
  1592. if((1010==z1)){
  1593. /*[IRF3.4opcode_dup*/r256opcode(((T256*)(oBC364code_attribute)),89,1);
  1594. /*]*/
  1595. }
  1596.  else 
  1597. if((1015==z1)){
  1598. /*[IRF3.4opcode_aload_1*/r256opcode(((T256*)(oBC364code_attribute)),43,1);
  1599. /*]*/
  1600. }
  1601.  else{/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms6_228);
  1602. r683fatal_error(((T683*)(oBC364eh)),b1);
  1603. }/*]*/
  1604. }}
  1605. }
  1606. void r228pop(T228* C){
  1607. C->_top=((((T228*)C))->_top/*4*/)-(1);
  1608. }
  1609. /*No:JVM.class_suffix*/
  1610. T0*oBC861stack_args=NULL;
  1611. /*No:JVM.C_check_id*/
  1612. T0*oBC364manifest_string_pool=NULL;
  1613. /*No:JVM.top*/
  1614. /*No:JVM.fz_74*/
  1615. /*No:JVM.b_put_u1_count*/
  1616. /*No:JVM.fz_28*/
  1617. T0*oBC228out_file_path=NULL;
  1618. int r228args_field_idx(void){
  1619. int R=0;
  1620. T0* _cp=NULL;
  1621. _cp=oBC364constant_pool;
  1622. R=r95idx_fieldref3(((T95*)_cp),r228jvm_root_class(),((T0*)ms200_470),((T0*)ms201_470));
  1623. return R;
  1624. }
  1625. void r228write_jvm_root_class(T228* C){
  1626. T0* _cp=NULL;
  1627. int _idx=0;
  1628. _cp=oBC364constant_pool;
  1629. r228start_directory(C,oBC228out_file_path,(((T228*)C))->_output_name/*16*/);
  1630. r7append(((T7*)(oBC228out_file_path)),((T0*)ms112_470));
  1631. r7append(((T7*)(oBC228out_file_path)),((T0*)ms40_364));
  1632. r228bfw_connect(C,oBC228out_file,oBC228out_file_path);
  1633. r228start_basic(C);
  1634. C->_access_flags=1025;
  1635. C->_this_class_idx=r95idx_class2(((T95*)_cp),r228jvm_root_class());
  1636. C->_super_class_idx=(((T95*)((T95*)_cp)))->_idx_java_lang_object/*8*/;
  1637. /*[IRF3.2args_field*/{T0* _cp=NULL;
  1638. int _jaos_idx=0;
  1639. int _args_idx=0;
  1640. _cp=oBC364constant_pool;
  1641. _args_idx=r95idx_uft8(((T95*)_cp),((T0*)ms200_470));
  1642. _jaos_idx=r95idx_uft8(((T95*)_cp),((T0*)ms201_470));
  1643. r543add(((T543*)(oBC364field_info)),9,_args_idx,_jaos_idx);
  1644. }/*]*/
  1645. /*[IRF3.2jvm_define_fields*/{int _i=0;
  1646. int _string_idx=0;
  1647. int _name_idx=0;
  1648. T0* _ms=NULL;
  1649. T0* _cp=NULL;
  1650. /*IF*/if (!(r269empty(((T269*)(oBC340ms_list))))) {
  1651. _cp=oBC364constant_pool;
  1652. _string_idx=r95idx_eiffel_string_descriptor(((T95*)_cp));
  1653. _i=(((T269*)((T269*)(oBC340ms_list))))->_upper/*12*/;
  1654. while (!((_i)<(0))) {
  1655. _ms=/*(IRF4.6item*/((((T269*)((T269*)(oBC340ms_list))))->_storage/*4*/)[_i]/*)*/;
  1656. /*IF*/if (r340not_dummy(_ms)) {
  1657. _name_idx=r95idx_uft8(((T95*)_cp),(((T805*)((T805*)_ms)))->_mapping_c/*32*/);
  1658. r543add(((T543*)(oBC364field_info)),9,_name_idx,_string_idx);
  1659. }
  1660. /*FI*/_i=(_i)-(1);
  1661. }
  1662. }
  1663. /*FI*/}/*]*/
  1664. r916jvm_define_fields(((T916*)(oBC364once_routine_pool)));
  1665. /*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  1666. r543add(((T543*)(oBC364field_info)),9,r95idx_uft8(((T95*)_cp),((T0*)ms184_470)),r95idx_uft8(((T95*)_cp),((T0*)ms173_470)));
  1667. }
  1668. /*FI*/C->_current_frame=NULL;
  1669. r506start(((T506*)(oBC364method_info)),9,((T0*)ms160_470),((T0*)ms161_470));
  1670. /*[IRF3.2jvm_initialize_fields*/{int _i=0;
  1671. T0* _ms=NULL;
  1672. T0* _ca=NULL;
  1673. T0* _cp=NULL;
  1674. /*IF*/if (!(r269empty(((T269*)(oBC340ms_list))))) {
  1675. _cp=oBC364constant_pool;
  1676. _ca=oBC364code_attribute;
  1677. _i=(((T269*)((T269*)(oBC340ms_list))))->_upper/*12*/;
  1678. while (!((_i)<(0))) {
  1679. _ms=/*(IRF4.6item*/((((T269*)((T269*)(oBC340ms_list))))->_storage/*4*/)[_i]/*)*/;
  1680. /*IF*/if (r340not_dummy(_ms)) {
  1681. r256opcode_push_manifest_string(((T256*)_ca),(((T805*)((T805*)_ms)))->_to_string/*16*/);
  1682. r256opcode_putstatic(((T256*)_ca),r805fieldref_idx(((T805*)_ms)),-(1));
  1683. }
  1684. /*FI*/_i=(_i)-(1);
  1685. }
  1686. }
  1687. /*FI*/}/*]*/
  1688. /*[IRF3.2jvm_initialize_fields*/{int _i=0;
  1689. /*IF*/if ((/*(IRF4.6count*/((((T226*)((T226*)(oBC916flag_list))))->_upper/*8*/)+(1)/*)*/)>(0)) {
  1690. _i=(((T226*)((T226*)(oBC916flag_list))))->_upper/*8*/;
  1691. while (!((_i)<(0))) {
  1692. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
  1693. /*]*/
  1694. r256opcode_putstatic(((T256*)(oBC364code_attribute)),/*(IRF4.6item*/((((T226*)((T226*)(oBC916flag_list))))->_storage/*0*/)[_i]/*)*/,-(1));
  1695. _i=(_i)-(1);
  1696. }
  1697. }
  1698. /*FI*/}/*]*/
  1699. /*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  1700. _idx=r95idx_fieldref3(((T95*)_cp),r228jvm_root_class(),((T0*)ms184_470),((T0*)ms173_470));
  1701. /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1);
  1702. /*]*/
  1703. r256opcode_putstatic(((T256*)(oBC364code_attribute)),_idx,-(1));
  1704. }
  1705. /*FI*//*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{int b1=177;
  1706. r226add_last(((T226*)(oBC256code)),b1);
  1707. }/*]*/
  1708. /*]*/
  1709. r506finish(((T506*)(oBC364method_info)));
  1710. /*[IRF3.2jvm_define*/{T0* _up_rf=NULL;
  1711. int _switch=0;
  1712. int _total=0;
  1713. int _count2=0;
  1714. int _count1=0;
  1715. T0* _dictionary2=NULL;
  1716. /*IF*/if (!(/*(IRF4.7empty*/((((T338*)((T338*)(oBC576dictionary))))->_count/*40*/)==(0)/*)*/)) {
  1717. _count1=1;
  1718. while (!((_count1)>((((T338*)((T338*)(oBC576dictionary))))->_count/*40*/))) {
  1719. _dictionary2=r338item(((T338*)(oBC576dictionary)),_count1);
  1720. _count2=1;
  1721. while (!((_count2)>((((T199*)((T199*)_dictionary2)))->_count/*40*/))) {
  1722. _up_rf=r199item(((T199*)_dictionary2),_count2);
  1723. /*[IRF3.3set_current_frame*/((((T228*)(((T228*)(oBC364jvm)))))->_current_frame)=(_up_rf);
  1724. /*]*/
  1725. r798jvm_define(_up_rf);
  1726. _total=(_total)+(1);
  1727. _count2=(_count2)+(1);
  1728. }
  1729. _count1=(_count1)+(1);
  1730. }
  1731. }
  1732. /*FI*/r306print_count(((T306*)(oBC364echo)),((T0*)ms2_576),_total);
  1733. }/*]*/
  1734. r228finish_class(C);
  1735. }
  1736. /*No:JVM.fz_75*/
  1737. void r228push_se_argv(T228* C){
  1738. T0* _arg0=NULL;
  1739. T0* _ca=NULL;
  1740. int _i=0;
  1741. int _point2=0;
  1742. int _point1=0;
  1743. _ca=oBC364code_attribute;
  1744. r256opcode_getstatic(((T256*)_ca),r228args_field_idx(),1);
  1745. _i=r228push_ith_argument(C,1);
  1746. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  1747. /*]*/
  1748. _point1=r256opcode_ifeq(((T256*)_ca));
  1749. /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)_ca),4,1);
  1750. /*]*/
  1751. /*[IRF3.4opcode_isub*/r256opcode(((T256*)_ca),100,-(1));
  1752. /*]*/
  1753. /*[IRF3.4opcode_aaload*/r256opcode(((T256*)_ca),50,-(1));
  1754. /*]*/
  1755. _point2=r256opcode_goto(((T256*)_ca));
  1756. r256resolve_u2_branch(_point1);
  1757. /*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1));
  1758. /*]*/
  1759. /*IF*/if (((((T228*)C))->_output_name/*16*/)!=((void*)(NULL))) {
  1760. _arg0=(((T228*)C))->_output_name/*16*/;
  1761. }
  1762. else {
  1763. _arg0=(((T590*)((T590*)(oBC364run_control))))->_root_class/*8*/;
  1764. }
  1765. /*FI*/_i=r95idx_string(((T95*)(oBC364constant_pool)),_arg0);
  1766. r256opcode_ldc(((T256*)_ca),_i);
  1767. r256resolve_u2_branch(_point2);
  1768. r256opcode_java_string2eiffel_string(((T256*)_ca));
  1769. }
  1770. T0*oBC861stack_target=NULL;
  1771. /*No:JVM.fz_29*/
  1772. void r228mkdir(T228* C,T0* a1){
  1773. /*IF*/if (((((T228*)C))->_output_name/*16*/)==((void*)(NULL))) {
  1774. C->_output_name=(((T451*)((T451*)(X291base_class_name(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/))))))->_to_string/*0*/;
  1775. C->_output_name=r7twin(((T7*)((((T228*)C))->_output_name/*16*/)));
  1776. r7to_lower(((T7*)((((T228*)C))->_output_name/*16*/)));
  1777. }
  1778. /*FI*//*IF*/if (r7has_suffix(((T7*)((((T228*)C))->_output_name/*16*/)),((T0*)ms40_364))) {
  1779. /*[IRF3.6remove_suffix*/{T7* C1=((T7*)((((T228*)C))->_output_name/*16*/));
  1780. T0* b1=((T0*)ms40_364);
  1781. r7remove_last(C1,(((T7*)((T7*)b1)))->_count/*4*/);
  1782. }/*]*/
  1783. }
  1784. /*FI*/r306put_string(((T306*)(oBC364echo)),((T0*)ms1_228));
  1785. r306put_string(((T306*)(oBC364echo)),(((T228*)C))->_output_name/*16*/);
  1786. r306put_string(((T306*)(oBC364echo)),((T0*)ms2_228));
  1787. r670mkdir((((T228*)C))->_output_name/*16*/);
  1788. }
  1789. /*No:JVM.fz_76*/
  1790. void r228push_direct(T228* C,T0* a1){
  1791. r228stack_push(C,1007);
  1792. /*[IRF3.5put*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]=(a1);
  1793. /*]*/
  1794. C->_direct_call_count=((((T228*)C))->_direct_call_count/*8*/)+(1);
  1795. }
  1796. /*No:JVM.macintosh_system*/
  1797. /*No:JVM.fz_jvm_root*/
  1798. /*No:JVM.fz_58*/
  1799. /*No:JVM.stack_first_size*/
  1800. /*No:JVM.C_direct_call*/
  1801. /*No:JVM.fz_main*/
  1802. /*No:JVM.fatal_error*/
  1803. /*No:JVM.direct_call_count*/
  1804. int r228push_arguments(T228* C){
  1805. int R=0;
  1806. T0* _fal=NULL;
  1807. T0* _dyn_rf=NULL;
  1808. T0* _rf=NULL;
  1809. T0* _eal=NULL;
  1810. T0* _cpc=NULL;
  1811. int _code=0;
  1812. _code=/*(IRF4.6item*/((((T226*)((T226*)(oBC861stack_code))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
  1813. {int z1=_code;
  1814.  
  1815. if(((1007<=z1)&&(z1<=1008))){
  1816. _cpc=/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
  1817. _eal=X135arguments(_cpc);
  1818. /*IF*/if ((_eal)!=((void*)(NULL))) {
  1819. _rf=X135run_feature(_cpc);
  1820. _fal=/*X496*/((T0*)(((T832*)((T832*)_rf)))->_arguments/*20*/);
  1821. R=r431compile_to_jvm(((T431*)_eal),_fal);
  1822. }
  1823. /*FI*/}
  1824.  else 
  1825. if((1009==z1)){
  1826. _rf=/*X308*/((T0*)r308item(((T308*)(oBC861stack_static_rf)),(((T228*)C))->_top/*4*/));
  1827. _dyn_rf=/*X308*/((T0*)r308item(((T308*)(oBC861stack_rf)),(((T228*)C))->_top/*4*/));
  1828. _fal=/*X496*/((T0*)(((T832*)((T832*)_rf)))->_arguments/*20*/);
  1829. /*IF*/if ((_fal)!=((void*)(NULL))) {
  1830. R=r31jvm_switch_push(((T31*)_fal),/*X496*/((T0*)(((T832*)((T832*)_dyn_rf)))->_arguments/*20*/));
  1831. }
  1832. /*FI*/}
  1833.  else 
  1834. if((1011==z1)){
  1835. }
  1836.  else 
  1837. if((1010==z1)){
  1838. _cpc=/*(IRF4.6item*/((((T569*)((T569*)(oBC861stack_cpc))))->_storage/*0*/)[(((T228*)C))->_top/*4*/]/*)*/;
  1839. _eal=X135arguments(_cpc);
  1840. /*IF*/if ((_eal)!=((void*)(NULL))) {
  1841. _rf=/*X308*/((T0*)r308item(((T308*)(oBC861stack_rf)),(((T228*)C))->_top/*4*/));
  1842. _fal=/*X496*/((T0*)(((T832*)((T832*)_rf)))->_arguments/*20*/);
  1843. R=r431compile_to_jvm(((T431*)_eal),_fal);
  1844. }
  1845. /*FI*/}
  1846.  else 
  1847. if((1015==z1)){
  1848. R=r228push_ith_argument(C,1);
  1849. }
  1850.  else{/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms9_228);
  1851. r683fatal_error(((T683*)(oBC364eh)),b1);
  1852. }/*]*/
  1853. }}
  1854. return R;
  1855. }
  1856. int r228idx_bad_target(T0* a1){
  1857. int R=0;
  1858. T0* _sp=NULL;
  1859. r7copy(((T7*)(oBC228tmp_string)),((T0*)ms11_228));
  1860. _sp=X662start_position(a1);
  1861. /*IF*/if ((_sp)!=((void*)(NULL))) {
  1862. r627append_in(((T627*)_sp),oBC228tmp_string);
  1863. }
  1864. /*FI*/R=r95idx_string(((T95*)(oBC364constant_pool)),oBC228tmp_string);
  1865. return R;
  1866. }
  1867. void r228push_switch(T228* C,T0* a1,T0* a2){
  1868. r228stack_push(C,1009);
  1869. /*X308*//*[IRF3.6put*/{T308* C1=((T308*)(oBC861stack_rf));
  1870. T0* b1=a1;
  1871. int b2=(((T228*)C))->_top/*4*/;
  1872. ((((T308*)C1))->_storage/*4*/)[b2]=(b1);
  1873. }/*]*/
  1874. /*X308*//*[IRF3.6put*/{T308* C1=((T308*)(oBC861stack_static_rf));
  1875. T0* b1=a2;
  1876. int b2=(((T228*)C))->_top/*4*/;
  1877. ((((T308*)C1))->_storage/*4*/)[b2]=(b1);
  1878. }/*]*/
  1879. }
  1880. /*No:JVM.C_inside_twin*/
  1881. void r228b_put_cpc(T228* C,T0* a1){
  1882. T0* _rf=NULL;
  1883. int _switch=0;
  1884. T0* _running=NULL;
  1885. T0* _target_type=NULL;
  1886. T0* _target=NULL;
  1887. _target=X135target(a1);
  1888. _target_type=X291run_type(X662result_type(_target));
  1889. /*IF*/if (X291is_expanded(_target_type)) {
  1890. r228push_direct(C,a1);
  1891. X496mapping_jvm(X135run_feature(a1));
  1892. r228pop(C);
  1893. }
  1894.  else if (X662is_current(_target)) {
  1895. r228push_direct(C,a1);
  1896. X496mapping_jvm(X135run_feature(a1));
  1897. r228pop(C);
  1898. }
  1899.  else if (X662is_manifest_string(_target)) {
  1900. r228push_direct(C,a1);
  1901. X496mapping_jvm(X135run_feature(a1));
  1902. r228pop(C);
  1903. }
  1904. else {
  1905. _running=(((T355*)((T355*)(X291run_class(_target_type)))))->_running/*12*/;
  1906. /*IF*/if ((r396count(((T396*)_running)))==(1)) {
  1907. r228push_check(C,a1);
  1908. _rf=X135run_feature(a1);
  1909. _rf=r355dynamic(((T355*)(r396first(((T396*)_running)))),_rf);
  1910. X496mapping_jvm(_rf);
  1911. r228pop(C);
  1912. }
  1913. else {
  1914. C->_switch_count=((((T228*)C))->_switch_count/*12*/)+(1);
  1915. r798jvm_mapping(a1);
  1916. }
  1917. /*FI*/}
  1918. /*FI*/}
  1919. void r228stack_overflow(T228* C){
  1920. T0* _rtma=NULL;
  1921. T0* _rtm=NULL;
  1922. T0* _rf=NULL;
  1923. int _i=0;
  1924. /*[IRF3.6append*/{T0* b1=((T0*)ms1_861);
  1925. r7append(((T7*)(oBC683explanation)),b1);
  1926. }/*]*/
  1927. _i=((((T228*)C))->_top/*4*/)-(1);
  1928. while (!((_i)<(0))) {
  1929. _rf=/*X308*/((T0*)r308item(((T308*)(oBC861stack_rf)),_i));
  1930. /*IF*/if ((_rf)!=((void*)(NULL))) {
  1931. r683add_position(X496start_position(_rf));
  1932. _rtm=X291run_time_mark(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
  1933. /*IF*/if ((_rtma)==((void*)(NULL))) {
  1934. {T927*n=malloc(sizeof(*n));
  1935. *n=M927;
  1936. r927with_capacity(n,(((T228*)C))->_top/*4*/);
  1937. _rtma=(T0*)n;
  1938. }
  1939. r927add_last(((T927*)_rtma),_rtm);
  1940. /*[IRF3.6append*/{T0* b1=_rtm;
  1941. r7append(((T7*)(oBC683explanation)),b1);
  1942. }/*]*/
  1943. }
  1944.  else if (r927fast_has(((T927*)_rtma),_rtm)) {
  1945. }
  1946. else {
  1947. r927add_last(((T927*)_rtma),_rtm);
  1948. /*[IRF3.6append*/{T0* b1=((T0*)ms2_861);
  1949. r7append(((T7*)(oBC683explanation)),b1);
  1950. }/*]*/
  1951. /*[IRF3.6append*/{T0* b1=_rtm;
  1952. r7append(((T7*)(oBC683explanation)),b1);
  1953. }/*]*/
  1954. }
  1955. /*FI*/}
  1956. /*FI*/_i=(_i)-(1);
  1957. }
  1958. r683fatal_error(((T683*)(oBC364eh)),((T0*)ms3_861));
  1959. }
  1960. /*No:JVM.put_magic*/
  1961. T0*oBC431isa_dca_inline_memory=NULL;
  1962. int r431isa_dca_inline(T431* C,T0* a1,T0* a2){
  1963. int R=0;
  1964. int _r=0;
  1965. int _i=0;
  1966. T0* _e=NULL;
  1967. T0* _args=NULL;
  1968. T0* _relay_args=NULL;
  1969. _relay_args=/*X496*/((T0*)(((T832*)((T832*)a1)))->_arguments/*20*/);
  1970. _args=/*X496*/((T0*)(((T832*)((T832*)a2)))->_arguments/*20*/);
  1971. R=1;
  1972. _i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*0*/))))->_upper/*12*/);
  1973. r353force(((T353*)(oBC431isa_dca_inline_memory)),0,_i);
  1974. /*[IRF3.6clear_all*/{T353* C1=((T353*)(oBC431isa_dca_inline_memory));
  1975. int __value=0;
  1976. /*[IRF3.6set_all_with*/{T353* C2=C1;
  1977. int c1=__value;
  1978. r593set_all_with((((T353*)C2))->_storage/*0*/,c1,((((T353*)C2))->_upper/*8*/)-((((T353*)C2))->_lower/*12*/));
  1979. }/*]*/
  1980. }/*]*/
  1981. while (!((!(R))||((_i)==(0)))) {
  1982. _e=/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),_i));
  1983. _r=X662isa_dca_inline_argument(_e);
  1984. {int z1=_r;
  1985.  
  1986. if((0==z1)){
  1987. R=0;
  1988. }
  1989.  else 
  1990. if((-1==z1)){
  1991. /*IF*/if (X291is_expanded(r31type(((T31*)_args),_i))) {
  1992. R=X291is_expanded(X662result_type(_e));
  1993. }
  1994. else {
  1995. R=X291is_reference(X662result_type(_e));
  1996. }
  1997. /*FI*/}
  1998.  else{/*[IRF3.6put*/{T353* C1=((T353*)(oBC431isa_dca_inline_memory));
  1999. int b1=1;
  2000. int b2=_r;
  2001. ((((T353*)C1))->_storage/*0*/)[(b2)-((((T353*)C1))->_lower/*12*/)]=(b1);
  2002. }/*]*/
  2003. /*IF*/if (X291is_reference(r31type(((T31*)_relay_args),_r))) {
  2004. /*IF*/if (X291is_reference(r31type(((T31*)_args),_i))) {
  2005. R=X291is_reference(X662result_type(_e));
  2006. }
  2007. else {
  2008. R=0;
  2009. }
  2010. /*FI*/}
  2011.  else if (X291is_expanded(r31type(((T31*)_args),_i))) {
  2012. R=X291is_expanded(X662result_type(_e));
  2013. }
  2014. else {
  2015. R=0;
  2016. }
  2017. /*FI*/}}
  2018. _i=(_i)-(1);
  2019. }
  2020. /*IF*/if (R) {
  2021. _i=X496arg_count(a1);
  2022. while (!((!(R))||((_i)==(0)))) {
  2023. R=r353item(((T353*)(oBC431isa_dca_inline_memory)),_i);
  2024. _i=(_i)-(1);
  2025. }
  2026. }
  2027. /*FI*/return R;
  2028. }
  2029. int r431is_like_argument(T431* C,T0* a1,T0* a2,T0* a3){
  2030. int R=0;
  2031. T0* _ot=NULL;
  2032. T0* _tla=NULL;
  2033. _tla=a3;
  2034. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  2035. case 239: 
  2036. break;
  2037. default:
  2038. _tla=NULL;
  2039. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  2040. R=1;
  2041. _ot=X662result_type(r431expression(C,/*(IRF4.6rank*/(((T886*)((T886*)((((T239*)((T239*)_tla)))->_like_what/*12*/))))->_rank/*20*//*)*/));
  2042. /*IF*/if (!(X291is_a(X291run_type(a2),X291run_type(_ot)))) {
  2043. r683add_position(X662start_position(a1));
  2044. r431error(X291start_position(a3),((T0*)ms12_431));
  2045. }
  2046. /*FI*/}
  2047. /*FI*/return R;
  2048. }
  2049. int r431compile_to_jvm_ith(T431* C,T0* a1,int a2){
  2050. int R=0;
  2051. T0* _ft=NULL;
  2052. T0* _e=NULL;
  2053. _e=r431expression(C,a2);
  2054. _ft=X291run_type(r31type(((T31*)a1),a2));
  2055. R=X662compile_to_jvm_into(_e,_ft);
  2056. return R;
  2057. }
  2058. void r431match_with(T431* C,T0* a1){
  2059. T0* _ft=NULL;
  2060. T0* _at=NULL;
  2061. T0* _e=NULL;
  2062. int _i=0;
  2063. T0* _fal=NULL;
  2064. _fal=/*X496*/((T0*)(((T832*)((T832*)a1)))->_arguments/*20*/);
  2065. /*IF*/if ((_fal)==((void*)(NULL))) {
  2066. r683add_position(X496start_position(a1));
  2067. r431error(r431start_position(C),((T0*)ms14_431));
  2068. }
  2069. /*FI*//*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)_fal)))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(r431count(C)))) {
  2070. r683add_position((((T31*)((T31*)_fal)))->_start_position/*4*/);
  2071. r431error(r431start_position(C),((T0*)ms14_431));
  2072. }
  2073. /*FI*/_i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*0*/))))->_upper/*12*/);
  2074. while (!(((_i)==(0))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  2075. _e=/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),_i));
  2076. _at=X662result_type(_e);
  2077. _ft=r31type(((T31*)_fal),_i);
  2078. /*IF*/if (X662is_void(_e)) {
  2079. /*IF*/if (X291is_expanded(_ft)) {
  2080. r683add_position(X662start_position(_e));
  2081. r431error(X291start_position(_ft),((T0*)ms2_431));
  2082. }
  2083. /*FI*/}
  2084.  else if (X291is_like_current(_ft)) {
  2085. /*IF*/if (X662is_current(_e)) {
  2086. }
  2087.  else if (X291is_a(X291run_type(_at),X291run_type(_ft))) {
  2088. /*IF*/if (X291is_expanded(X291run_type(_at))) {
  2089. }
  2090.  else if (X291is_a(X291run_type(_ft),X291run_type(_at))) {
  2091. }
  2092. else {
  2093. r683add_position(X662start_position(_e));
  2094. r431error(X291start_position(_ft),((T0*)ms13_431));
  2095. }
  2096. /*FI*/}
  2097. else {
  2098. r683add_position(X662start_position(_e));
  2099. r431error(X291start_position(_ft),((T0*)ms13_431));
  2100. }
  2101. /*FI*/}
  2102.  else if (X291is_like_feature(_ft)) {
  2103. /*IF*/if (X291is_a(X291run_type(_at),X291run_type(_ft))) {
  2104. }
  2105. else {
  2106. r683add_position(X662start_position(_e));
  2107. r431error(X291start_position(_ft),((T0*)ms3_431));
  2108. }
  2109. /*FI*/}
  2110.  else if (r431is_like_argument(C,_e,_at,_ft)) {
  2111. }
  2112.  else if (X291is_a(X291run_type(_at),X291run_type(_ft))) {
  2113. }
  2114. else {
  2115. r683print_as_error(((T683*)(oBC364eh)));
  2116. r683add_position(X291start_position(_ft));
  2117. r431error(X662start_position(_e),((T0*)ms4_431));
  2118. }
  2119. /*FI*/_at=X291run_type(_at);
  2120. _ft=X291run_type(_ft);
  2121. /*IF*/if (X291is_expanded(_ft)) {
  2122. /*IF*/if (X291is_expanded(_at)) {
  2123. }
  2124. else {
  2125. X291used_as_reference(_ft);
  2126. }
  2127. /*FI*/}
  2128.  else if (X291is_expanded(_at)) {
  2129. X291used_as_reference(_at);
  2130. }
  2131. /*FI*/_i=(_i)-(1);
  2132. }
  2133. }
  2134. /*No:EFFECTIVE_ARG_LIST.make*/
  2135. /*No:EFFECTIVE_ARG_LIST.nb_errors*/
  2136. T0* r431expression(T431* C,int a1){
  2137. T0* R=NULL;
  2138. R=/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),a1));
  2139. return R;
  2140. }
  2141. T0* r431start_position(T431* C){
  2142. T0* R=NULL;
  2143. R=X662start_position(/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),1)));
  2144. return R;
  2145. }
  2146. void r431compile_to_jvm_old(T431* C){
  2147. int _i=0;
  2148. /*IF*/if (((((T431*)C))->_list/*0*/)!=((void*)(NULL))) {
  2149. _i=1;
  2150. while (!((_i)>(/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*0*/))))->_upper/*12*/)))) {
  2151. X662compile_to_jvm_old(/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),_i)));
  2152. _i=(_i)+(1);
  2153. }
  2154. }
  2155. /*FI*/}
  2156. T0* r431to_runnable(T431* C,T0* a1){
  2157. T0* R=NULL;
  2158. T0* _e2=NULL;
  2159. T0* _e1=NULL;
  2160. int _i=0;
  2161. /*IF*/if (((((T431*)C))->_current_type/*4*/)==((void*)(NULL))) {
  2162. C->_current_type=a1;
  2163. _i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*0*/))))->_upper/*12*/);
  2164. while (!((_i)==(0))) {
  2165. _e1=/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),_i));
  2166. _e2=X662to_runnable(_e1,(((T431*)C))->_current_type/*4*/);
  2167. /*IF*/if ((_e2)==((void*)(NULL))) {
  2168. r431error(X662start_position(_e1),((T0*)ms5_431));
  2169. }
  2170.  else if ((_e1)!=((void*)(_e2))) {
  2171. /*X96*//*[IRF3.6put*/{T96* C1=((T96*)((((T431*)C))->_list/*0*/));
  2172. T0* b1=_e2;
  2173. int b2=_i;
  2174. ((((T96*)C1))->_storage/*4*/)[(b2)-((((T96*)C1))->_lower/*16*/)]=(b1);
  2175. }/*]*/
  2176. }
  2177. /*FI*/_i=(_i)-(1);
  2178. }
  2179. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  2180. R=(T0*)C;
  2181. }
  2182. /*FI*/}
  2183.  else if ((X291run_class(a1))==((void*)(r431run_class(C)))) {
  2184. R=(T0*)C;
  2185. }
  2186. else {
  2187. {T431*n=malloc(sizeof(*n));
  2188. *n=M431;
  2189. /*[IRF3.3make*/((((T431*)(n)))->_list)=(X96twin((((T431*)C))->_list/*0*/));
  2190. /*]*/
  2191. R=(T0*)n;
  2192. }
  2193. R=r431to_runnable(((T431*)R),a1);
  2194. }
  2195. /*FI*/return R;
  2196. }
  2197. int r431is_static(T431* C){
  2198. int R=0;
  2199. int _i=0;
  2200. R=1;
  2201. _i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*0*/))))->_upper/*12*/);
  2202. while (!((!(R))||((_i)==(0)))) {
  2203. R=X662is_static(r431expression(C,_i));
  2204. _i=(_i)-(1);
  2205. }
  2206. return R;
  2207. }
  2208. /*No:EFFECTIVE_ARG_LIST.em1*/
  2209. /*No:EFFECTIVE_ARG_LIST.list*/
  2210. /*No:EFFECTIVE_ARG_LIST.em2*/
  2211. /*No:EFFECTIVE_ARG_LIST.current_type*/
  2212. T0* r431run_class(T431* C){
  2213. T0* R=NULL;
  2214. R=X291run_class((((T431*)C))->_current_type/*4*/);
  2215. return R;
  2216. }
  2217. int r431compile_to_jvm(T431* C,T0* a1){
  2218. int R=0;
  2219. int _up=0;
  2220. int _i=0;
  2221. _i=1;
  2222. _up=r431count(C);
  2223. while (!((_i)>(_up))) {
  2224. R=(R)+(r431compile_to_jvm_ith(C,a1,_i));
  2225. _i=(_i)+(1);
  2226. }
  2227. return R;
  2228. }
  2229. int r431is_pre_computable(T431* C){
  2230. int R=0;
  2231. int _i=0;
  2232. _i=r431count(C);
  2233. R=1;
  2234. while (!((!(R))||((_i)==(0)))) {
  2235. R=X662is_pre_computable(r431expression(C,_i));
  2236. _i=(_i)-(1);
  2237. }
  2238. return R;
  2239. }
  2240. int r431use_current(T431* C){
  2241. int R=0;
  2242. int _i=0;
  2243. _i=1;
  2244. while (!(((_i)>(r431count(C)))||(R))) {
  2245. R=X662use_current(r431expression(C,_i));
  2246. _i=(_i)+(1);
  2247. }
  2248. return R;
  2249. }
  2250. void r431error(T0* a1,T0* a2){
  2251. r683add_position(a1);
  2252. r683error(((T683*)(oBC364eh)),a2);
  2253. }
  2254. int r431count(T431* C){
  2255. int R=0;
  2256. R=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*0*/))))->_upper/*12*/);
  2257. return R;
  2258. }
  2259. T0* r431first(T431* C){
  2260. T0* R=NULL;
  2261. R=X96first((((T431*)C))->_list/*0*/);
  2262. return R;
  2263. }
  2264. void r431afd_check(T431* C){
  2265. int _i=0;
  2266. _i=/*X96*/((int)(((T96*)((T96*)((((T431*)C))->_list/*0*/))))->_upper/*12*/);
  2267. while (!((_i)==(0))) {
  2268. X662afd_check(/*X96*/((T0*)r96item(((T96*)((((T431*)C))->_list/*0*/)),_i)));
  2269. _i=(_i)-(1);
  2270. }
  2271. }
  2272. T0* r873add_comment(T873* C,T0* a1){
  2273. T0* R=NULL;
  2274. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  2275. R=(T0*)C;
  2276. }
  2277. else {
  2278. {T529*n=malloc(sizeof(*n));
  2279. *n=M529;
  2280. r529make(n,(T0*)C,a1);
  2281. R=(T0*)n;
  2282. }
  2283. }
  2284. /*FI*/return R;
  2285. }
  2286. int r873to_integer(T873* C){
  2287. int R=0;
  2288. r873error((((T873*)C))->_start_position/*16*/,((T0*)ms69_470));
  2289. return R;
  2290. }
  2291. int r873is_a(T873* C,T0* a1){
  2292. int R=0;
  2293. R=X291is_a(X291run_type((((T873*)C))->_result_type/*24*/),X291run_type(X662result_type(a1)));
  2294. /*IF*/if (!(R)) {
  2295. r683add_position((((T873*)C))->_start_position/*16*/);
  2296. r873error(X662start_position(a1),((T0*)ms4_662));
  2297. }
  2298. /*FI*/return R;
  2299. }
  2300. void r873name_clash(T873* C){
  2301. T0* _rc=NULL;
  2302. T0* _rf=NULL;
  2303. /*IF*/if (r605has_feature(((T605*)(r873base_class_written(C))),(((T873*)C))->_to_string/*12*/)) {
  2304. _rc=X291run_class((((T873*)C))->_current_type/*8*/);
  2305. _rf=r355get_feature_with(((T355*)_rc),(((T873*)C))->_to_string/*12*/);
  2306. /*IF*/if ((_rf)!=((void*)(NULL))) {
  2307. r683add_position(X496start_position(_rf));
  2308. }
  2309. /*FI*/r873error((((T873*)C))->_start_position/*16*/,((T0*)ms1_873));
  2310. }
  2311. /*FI*/}
  2312. /*No:ARGUMENT_NAME1.is_current*/
  2313. int r873jvm_branch_if_false(T873* C){
  2314. int R=0;
  2315. r873compile_to_jvm(C);
  2316. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  2317. return R;
  2318. }
  2319. T0* r873written_in(T873* C){
  2320. T0* R=NULL;
  2321. T0* _sp=NULL;
  2322. _sp=(((T873*)C))->_start_position/*16*/;
  2323. /*IF*/if ((_sp)!=((void*)(NULL))) {
  2324. R=(((T627*)((T627*)_sp)))->_base_class_name/*0*/;
  2325. }
  2326. /*FI*/return R;
  2327. }
  2328. /*No:ARGUMENT_NAME1.static_value*/
  2329.  
  2330.